我该在.NET应用程序中部署Interop.x.dll文件吗?

12

我们有一个.NET应用程序,它使用不同DLL中的COM对象,这些DLL也在我们应用程序的VB6部分中使用。当引用COM库时,Visual Studio 2012会创建一个Interop.x.DLL并引用它。我应该从构建机器上分发Interop.x.DLL还是使用某个.NET命令行工具重新生成它?哪个工具?那么,在部署引用COM的.NET应用程序时,最佳实践是什么呢?

1个回答

15

不必了,自从VS2010和.NET 4.0推出后就不再需要了。您只需将互操作程序集引用的Embed Interop Types属性设置为True即可,这是默认设置。

启用此选项后,互操作类型会被复制到您自己的程序集中,就好像您自己手动编写了[ComImport]声明一样,而且仅会复制您实际在代码中使用的类型。这个功能对于大型组件来说效果最好,尤其是Microsoft.Office.Interop组件非常大。当然,对于小组件也很方便,因为您不再需要部署互操作程序集。


这些COM组件更新时会发生什么?我需要重新编译/重新嵌入吗? - flipdoubt
1
+1 为了澄清,这意味着 Interop.x.dlls 将不会被生成。另外,偶尔会有一些问题只能通过不嵌入互操作类型来解决。 - MarkJ
@flipdoubt 像使用非嵌入式互操作程序集一样。 - Deanna

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