不能同时为/link和/reference编译器选项指定程序集xxx

本文关键字:选项 xxx 程序集 编译器 link 不能 reference | 更新日期: 2023-09-27 18:12:33

在尝试在VS2013中编译c#项目时,我在标题中得到错误。

看来我需要看看我的编译器选项,并确保/link和/reference选项没有重复的东西。

现在如果我能找到编译器选项。我去项目属性,但我没有看到任何选项卡可以访问编译器选项。

如何访问VS2013中的编译器选项?

不能同时为/link和/reference编译器选项指定程序集xxx

/link选项不受项目属性控制。它适用于程序集引用,即在项目的References节点中找到的程序集引用。

当引用的Embed Interop Types属性被设置为True时使用。适用于对COM类型库的引用。如果为False,则使用/reference。很难猜测如何同时打开/link和/reference。然而,程序员已经陷入了过时的PIA的麻烦,"嵌入互操作类型"的另一个名字是"无PIA特性"。可能和它有关

我知道这是一个老问题,但我自己刚刚遇到这个问题。我花了一段时间试图修复它,和汉斯·帕桑特说的一样,这种情况没有多大意义。

重新启动Visual Studio后,我的问题消失了。

如果我试图切换Embed Interop Types -将其从True更改为False,我可以重现这个问题。这将Copy Local更改为True。再次更改Embed Interop Types似乎会导致问题,好像在幕后只有一个选项被正确更改。

确保这些设置是我想要的,然后重新启动Visual Studio似乎使它恢复正常。

在向我的项目添加引用(Microsoft.Office.Interop.Excel)时,我遇到了同样的问题,可能会干扰这些引用中的一个或多个:COM Excel, COM Microsoft.Office.CoreCOM VBIDE。当我最终在代码中找到一个解决方法,允许我删除第一个引用(它实际上与其他三个共享一些函数和对象)时,问题就解决了。