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

由于我们有很多项目,其中一些项目的引用设置为False,其他项目的设置为True,这完全是一团糟。 bulid服务器也有相同的警告:



因此,我们计划将所有Embed Inteop Types更改为False,这会带来什么风险?

最佳答案

引入此选项是为了消除为互操作部署非常大的PIA(主互操作程序集)的需要。
它只是嵌入所使用的托管桥接代码,该代码使您可以与非托管程序集进行通信,但不是将其全部嵌入,而是仅创建您在代码中实际使用的东西。
在Scott Hanselman的博客文章中了解更多信息以及其他VS改进here
至于是否建议,我不确定,因为我不需要使用此功能。快速的网络搜索产生了一些线索:

  • Check your Embed Interop Types flag when doing Visual Studio extensibility work
  • The Pain of deploying Primary Interop Assemblies

  • 将它们全部置为假的唯一风险是,与PIA文件有关的部署问题更多,而如果其中一些文件很大,则涉及更大的部署问题。

    关于c# - 在Visual Studio中将Embed Interop Types设置为true和false有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20514240/

    10-12 01:33