gpt4 book ai didi

c# - 无需先注册 COM 服务即可构建 .NET COMInterop 项目

转载 作者:行者123 更新时间:2023-11-30 04:40:36 24 4
gpt4 key购买 nike

我正在构建一个 C# UI 来与 COM 服务 (.exe) 交互。 VS2005 COM 项目输出一个有效的类型库 (TLB),它被 C# 项目引用。然而,VS2005 C# 项目坚持要注册服务才能构建 C# 项目,即使在使用 OLE 对象查看器检查时类型库看起来完全有效。

如果可能的话,我们宁愿不在构建服务器上注册服务。此外,调试版本无法将 COM 对象注册为服务,因为这使得一般调试,尤其是启动代码更加困难(不能使用 F5 - 开始调试)。

为了让它正常工作,我应该寻找什么?我只需要注册 TypeLib 吗?如果是这样,为什么 COMInterop 会坚持注册服务或 TLB 以便正确构建(并且,在带有 VS2005 的 Win2003 上是否有用于此的命令行工具)?

如果我没记错的话,曾几何时我构建了一个引用 Win2003 防火墙 COM 对象的 C# web 服务,但我们只是在没有注册的情况下引用 TLB 文件在 Win2000(没有这样的东西)上构建它必需的,所以我不明白为什么现在这应该是个问题。

最佳答案

您需要使用 tlbimp.exe 创建互操作程序集工具。并在您的项目中添加对此程序集的引用而不是类型库。在这种情况下,构建不需要注册 com 服务器。

如果您不想发布另一个程序集,您可以使用 Reflector 从生成的互操作程序集中提取接口(interface)描述。并将它们作为源文件包含到项目中。

关于c# - 无需先注册 COM 服务即可构建 .NET COMInterop 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1039805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com