在不使用GAC的情况下在.NET项目中使用COM组件

时间:2013-09-20 08:57:20

标签: .net com project gac

如何将COM .dll添加到.NET项目中,然后在不在GAC中注册的情况下使用它。背景是我不允许在TFS构建服务器上安装任何东西,我的应用程序引用COM dll组件。我应该如何将COM添加到我的应用程序以引用来自bin / define文件夹而不是来自GAC?

编辑:

当我通过添加引用添加COM并浏览到DLL时出现错误“无法添加对(...)的引用。请确保该文件可访问,并且它是有效的程序集或COM组件。“

谢谢, 莱谢克

2 个答案:

答案 0 :(得分:2)

COM DLL未安装到GAC中。主互操作组件(PIA)可以,但我认为这不是你需要的。你在哪台机器上收到这条消息?你得到它是因为你的COM DLL没有注册为COM服务器(regsvr32.exe)。这与GAC无关。在开发机器上注册后,您就可以将其添加为.NET项目的参考。添加它将生成所需的互操作程序集,但它们仍然是项目的本地程序,您不必将它们安装到GAC中。

或者,您可以使用tlbimpaximp工具手动生成互操作assmeblies,然后将它们添加到项目中。

无论您选择哪种方式,COM DLL仍然必须在您的开发计算机上注册,但在TFS构建计算机上不必如此。此外,您可以使用Isolated COM来避免客户端计算机上的注册要求。您所需要的只是将COM DLL及其互操作程序集与您的主应用程序驻留在同一文件夹中。

答案 1 :(得分:0)

您是否尝试过http://msdn.microsoft.com/en-us/library/ms973913.aspx中描述的方法?