我正在用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这样的工具手动更改这个值。这不是一个理想的解决方案,但是如果没有更好的解决方案,它可以工作。
1条答案
按热度按时间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
一起):