c# c#配置 - 在Visual Studio中设置Embed Interop Types true和false有什么不同?



vscode运行c# c#教程 (3)

引入此选项是为了消除为互操作部署非常大的PIA(主互操作程序集)的需要。

它只是嵌入所使用的托管桥接代码,允许您与非托管程序集进行通信,但不是嵌入它,而只是创建实际在代码中使用的内容。

阅读Scott Hanselman的博客文章,了解更多信息以及其他VS的改进。

至于是否建议,我不确定,因为我不需要使用此功能。 快速的网页搜索会产生一些线索:

将它们全部变为假的唯一风险是更多的PIA文件部署问题和更大的部署,如果其中一些文件很大。

在Visual Studio中,向项目添加一个引用时,属性窗口有一个选项Embed Inteop Types ,我们应该将它设置为True还是False ? 有什么不同?

由于我们有很多项目,其中一些项目的参考设置为False ,其他项目设置为True ,这完全搞砸了。 而且bulid服务器也有相同的警告:

“嵌入式互操作程序集创建的参考”是什么意思?

因此,我们计划将所有Embed Inteop Types更改为False ,我们将获得哪些风险?


我注意到,当它设置为false时,我可以使用调试器查看项目的值。 当它被设置为true时,我得到一个错误 - item.FullName.GetValue嵌入式互操作类型'FullName'不包含'QBFC11Lib.IItemInventoryRet'的定义,因为它在编译的程序集中未使用。 考虑转换为对象或将“嵌入互操作类型”属性更改为true。


重构您的项目,将公共元素带入项目#1和项目#2引用的“项目#0”。





c# visual-studio