我的.net项目引用了我在开发人员机器上注册的COM类型库(我无法控制这个库)。 看起来VS2010即时生成互操作程序集 - 发布和调试有两种不同(它们确实不同)。 它们分别放在/ obj / Release和/ obj / Debug文件夹中。 问题是COM库不是也不应该在构建机器上注册。
我有什么选择? 我不想将/ obj / Release(Debug)文件夹与interop程序集放在源代码管理下。如果我必须这样做,我想改变路径,但我认为没有办法做到这一点。
如果我必须使用tlbimp生成IA,我该如何生成2(Debug和Release)版本?
答案 0 :(得分:4)
您可以使用tlbimp.exe手动创建互操作程序集,然后引用这些程序集而不是实际的COM库。这意味着Visual Studio不必生成互操作程序集,您可以完全控制它们。你当然要检查这些,但是你可以把它们放在任何你想要的地方。
修改强>
由于互操作程序集只包含元数据,也就是说没有可执行代码,因此“发布”或“调试”构建之间应该没有区别,实际上 tlbimp.exe 没有指定任一项的选项。