使用 COM 引用构建 .net 项目
我的 .net 项目引用了我在开发人员计算机上注册的 COM 类型库(我无法控制这个库)。 看起来 VS2010 动态生成互操作程序集 - 对于发布和调试有 2 个不同(它们确实不同)。 它们分别放在 /obj/Release 和 /obj/Debug 文件夹中。 问题是 COM 库没有也不应该在构建机器上注册。
我在这里有什么选择? 我不想将 /obj/Release(Debug) 文件夹与互操作程序集置于源代码管理之下。如果我必须这样做,我想改变路径,但我没有看到任何方法可以做到这一点。
如果我必须使用 tlbimp 自己生成 IA,如何生成 2(调试和发布)版本?
My .net project references a COM type library which I registered on my developer machine(I don't have control over this one).
It looks like VS2010 generates interop assemblies on the fly - 2 different(they really differ) for Release and Debug.
These are put in /obj/Release and /obj/Debug folders respectively.
The thing is that the COM library is not and should not be registered on the build machine.
What are my options here?
I don't feel like putting the /obj/Release(Debug) folders with the interop assemblies under source control. If I have to do that I would like to change the paths but I don't see any way to do that.
If I have to use tlbimp to generate the IA's myself how do I generate the 2(Debug and Release) versions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 tlbimp.exe 手动创建互操作程序集,然后引用这些程序集而不是实际的 COM 库。这意味着 Visual Studio 不必生成互操作程序集,并且您可以完全控制它们。当然,您必须签入这些内容,但是您可以将它们放在您想要的任何位置。
编辑:
由于互操作程序集仅包含元数据,也就是说没有可执行代码,因此“发布”或“调试”构建之间应该没有区别,事实上tlbimp.exe< /em> 也没有指定的选项。
You can create an interop assembly manually by using tlbimp.exe, and then reference those assemblies instead of the actual COM library. This means Visual Studio does not have to generate the interop-assemblies and you have full control over them. You would have to check these in of course, but then you can put them anywhere you want.
Edit:
Since the interop assembly contains only metadata, that is to say no executable code, there should be no difference between a "Release" or "Debug" build, in fact tlbimp.exe does not have options to specify either.