如何将 COM .dll 添加到 .NET 项目中,然后在不注册 GAC 的情况下使用它。背景是我不允许在 TFS 构建服务器上安装任何东西,并且我的应用程序引用了 COM dll 组件。我应该如何将 COM 添加到我的应用程序以引用来自 bin/define 文件夹而不是来自 GAC?
编辑:
当我通过添加引用添加 COM 并浏览到 DLL 时出现错误“无法添加对 (...) 的引用。请确保该文件可访问,并且它是有效的程序集或 COM 组件。”
谢谢, 莱斯泽克
COM DLL 不会安装到 GAC 中。主互操作程序集 (PIA) 可以,但我认为这不是您需要的。您在什么机器上收到此消息?您得到它是因为您的 COM DLL 没有注册为 COM 服务器(带有regsvr32.exe
)。这与GAC 无关。在您的开发机器上注册它后,您就可以将它添加为对您的 .NET 项目的引用。添加它会生成所需的互操作程序集,但它们仍然是您项目的本地程序,您不必将它们安装到 GAC 中。
或者,您可以使用tlbimp
或aximp
工具并手动生成互操作程序集,然后将它们添加到项目中。
无论您采取何种选择,COM DLL 仍然必须在您的开发机器上注册,但在 TFS 构建机器上不必如此。此外,您可以使用隔离 COM来避免客户端计算机上的注册要求。然后,您所需要的就是让 COM DLL 及其互操作程序集与您的主应用程序位于同一文件夹中。