由于删除二进制文件失败而导致的Visual Studio生成错误



我有一个c# Windows窗体应用程序(让我们称之为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)'   
如果能帮助我解决这个问题,我将非常感激。

编辑

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

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

这是一种自动破解,但它应该工作。右键单击项目并打开其属性。转到Build Events并在Pre-build event命令行中输入以下内容:

cd $(TargetDir)
del *.exe

这将在构建之前删除旧的二进制文件。

最新更新