更改.NET 6 COM主机的发布者/其他信息?

sbdsn5lh  于 2023-03-20  发布在  .NET
关注(0)|答案(1)|浏览(152)

我正在用C#编写一个COM应用程序,我很好奇是否有可能更改.comhost.dll的VERSIONINFO,它是与包含所有.NET代码的文件一起生成的。因此,在构建后会输出两个DLL文件,一个是常规文件,另一个是用于regsvr32的COM主机文件。常规.NET文件具有正确的信息,如.NET项目设置中所设置的那样。但COM主机具有来自Microsoft的一般信息。
这是因为IdeComhostIdedll的信息显示在某些区域,如IE插件管理器,这是误导,因为它会说明发布者是“微软公司”。我希望这是我的名字。

尽管.NET代码(MyApplication.dll)具有正确的CompanyName值,但COM主机(MyApplication.comhost.dll)仍保留此“Microsoft Corporation”值。
虽然我还没有找到在编译过程中设置这个值的方法,但是可以在编译后通过Resource Hacker这样的工具手动更改这个值。这不是一个理想的解决方案,但是如果没有更好的解决方案,它可以工作。

agxfikkp

agxfikkp1#

摘自西蒙·穆里尔的原创评论:
您不需要在每次编译时修改comhost(aka 'shim')。将标准的comhost(从类似C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\7.0.4\runtimes\win-x64\native\comhost.dll的路径)复制到某个地方,用您想要的工具将其更改为您想要的(Microsoft as it can be customized没有特意对其进行签名),然后在.csproj中的PropertyGroup中引用它,如下所示(例如与EnableComHosting一起):

<ComHostSourcePath>c:\mypath\mycomhost.dll</ComHostSourcePath>

相关问题