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

问题描述 投票:0回答:1

我正在用 C# 编写 COM 应用程序,我很好奇是否可以更改与所有 .NET 代码一起生成的

.comhost.dll
的 VERSIONINFO。所以有两个 DLL 文件在构建后输出,一个是常规文件,一个是您使用
regsvr32
的 COM 主机文件。常规 .NET 具有正确的信息,如 .NET 项目设置中所设置的那样,但 COM 主机具有来自 Microsoft 的通用信息。

这是因为.comhost.dll的信息显示在某些区域,例如IE插件管理器,这是误导性的,因为它会声明发布者是“Microsoft Corporation”。我希望这是我的名字。

Example of the CompanyName being

虽然 .NET 代码 (

MyApplication.dll
) 具有正确的
CompanyName
值,但 COM 主机 (
MyApplication.comhost.dll
) 仍然保留此“Microsoft Corporation”值。

虽然我还没有发现在编译期间设置它的方法,但可以通过 Resource Hacker 等工具在构建后手动更改该值。这是一个不太理想的解决方案,但如果没有更好的解决方案,它可以工作。

c# .net com interop .net-6.0
1个回答
0
投票

复制自Simon Mourier的原评论

您不需要在每次编译时修改 comhost(又名“shim”)。将标准的(从这样的路径

C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\7.0.4\runtimes\win-x64\native\comhost.dll
)复制到某处,用你想要的工具将其更改为你的意愿(它不是微软故意签署的,因为它可以定制),然后在 .在 PropertyGroup 中这样的 csproj(例如
EnableComHosting
):

<ComHostSourcePath>c:\mypath\mycomhost.dll</ComHostSourcePath>
© www.soinside.com 2019 - 2024. All rights reserved.