使用COM引用构建一个.NET项目

3
我的.net项目引用了一个COM类型库,我在开发人员电脑上注册了它(我无法控制它)。看起来VS2010会动态生成互操作性程序集,分别针对Release和Debug生成2个不同的程序集(它们确实不同),这些程序集分别放置在/obj/Release和/obj/Debug文件夹中。问题是,COM库不应该在构建机器上注册。
那么我的选择有哪些呢?我不想将/obj/Release(Debug)文件夹及其包含的程序集放到源代码控制下。如果我必须这样做,那么我希望更改路径,但我没有找到任何方法可以做到这一点。
如果我必须使用tlbimp手动生成程序集,如何生成2个(Debug和Release)版本呢?
1个回答

4
您可以通过使用 tlbimp.exe 手动创建互操作程序集,然后引用这些程序集而不是实际的COM库。这意味着Visual Studio不必生成互操作程序集,您可以完全控制它们。当然您需要对其进行检查,但然后您可以将它们放在任何您想要的地方。
编辑:
由于互操作程序集仅包含元数据,也就是说没有可执行代码,在“发布”或“调试”构建之间不应该有任何区别,实际上 tlbimp.exe 没有指定这两者的选项。

这两个IA确实不同 - 我用diff工具进行了比较。但无论如何,还是谢谢你的回答,我想我没有更好的选择了。 - Ventsyslav Raikov
很有趣...我想知道它们为什么不同,是什么造成了这种差异,实际上这种差异可能是什么...如果我发现了什么,会让你知道的。 - DeCaf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接