【发布时间】:2014-07-10 15:40:40
【问题描述】:
我在尝试在 VS2013 中编译 C# 项目时遇到标题中的错误。
看来我需要查看我的编译器选项并确保 /link 和 /reference 选项没有重复。
现在,如果我能找到编译器选项。我转到项目属性,但在任何可以访问编译器选项的选项卡中都看不到任何内容。
如何访问 VS2013 中的编译器选项?
【问题讨论】:
标签: c# visual-studio-2013
我在尝试在 VS2013 中编译 C# 项目时遇到标题中的错误。
看来我需要查看我的编译器选项并确保 /link 和 /reference 选项没有重复。
现在,如果我能找到编译器选项。我转到项目属性,但在任何可以访问编译器选项的选项卡中都看不到任何内容。
如何访问 VS2013 中的编译器选项?
【问题讨论】:
标签: c# visual-studio-2013
/link 选项不受项目属性控制。它适用于程序集引用,即您在项目的 References 节点中找到的那些。
它将在引用的Embed Interop Types 属性设置为True 时使用。适用于对 COM 类型库的引用。如果为 False,则将使用 /reference。很难猜出如何同时打开 /link 和 /reference。然而,过时的 PIA 给程序员带来了麻烦,“嵌入互操作类型”的另一个名称是“无 PIA 功能”。可能与此有关。
【讨论】:
我知道这是一个老问题,但我自己也遇到了这个问题。 我花了一段时间试图修复它,按照 Hans Passant 所说的,遇到这种情况没有多大意义。
重新启动 Visual Studio 后,我的问题就消失了。
如果我尝试切换 Embed Interop Types,我可以重现该问题 - 将其从 True 更改为 False。这将 Copy Local 更改为 True。再次更改 Embed Interop Types 似乎会导致问题,好像在幕后只有一个选项被正确更改。
确保这些设置是我想要的,然后重新启动 Visual Studio 似乎可以让它恢复正常。
【讨论】:
在我的项目中添加可能干扰以下一个或多个引用的引用 (Microsoft.Office.Interop.Excel) 时,我遇到了同样的问题:COM Excel、COM Microsoft.Office.Core 和 COM VBIDE。当我终于在代码中找到了一种解决方法,可以让我删除第一个引用(它实际上与其他三个共享一些函数和对象),问题就解决了。
【讨论】: