1

我有一个 C# Windows Forms 应用程序(我们称之为 App.exe),由于奇怪的原因无法构建。这似乎是由于 Visual Studio 2010 中的一个错误。我无法升级到 VS2012。

  • 在代码更改和构建后,VS2010 似乎无法删除旧的二进制 App.exe。
  • 然后它会发现旧二进制文件中的一些类型并抛出错误“以下方法或属性之间的调用不明确”。
  • 错误消息中显示的类型相同。所以我认为它在旧二进制文件和源代码中都找到了类型。
  • 当我清理和重建,或从磁盘中删除旧的二进制 App.exe 时,构建成功

这是我遇到的错误类型的示例:

The call is ambiguous between the following methods or properties:     
'App.Namespace.Class.Method(System.Type)' 
and 
'App.Namespace.Class.Method(System.Type)'   

对于解决此问题的任何帮助,我将不胜感激。

编辑

这是由应用程序对自身有程序集引用引起的。不知道这是怎么发生的,但是当我删除参考时,问题就解决了。

4

1 回答 1

0

您是否尝试过创建一个新项目?只需创建一个新项目并添加现有文件。您也可以尝试删除解决方案文件夹中的 bin 和 obj 文件夹。

更新

这是一种自动破解,但它应该可以工作。右键单击您的项目并打开其属性。转到构建事件并在预构建事件命令行中输入以下内容:

cd $(TargetDir)
del *.exe

这将在构建之前删除旧的二进制文件。希望这可以帮助。

于 2013-03-14T12:21:05.383 回答