【问题标题】:Visual Studio build error due to failure to delete binary file由于无法删除二进制文件,Visual Studio 生成错误
【发布时间】:2013-03-14 12:06:46
【问题描述】:

我有一个 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)'   

如果您能帮我解决这个问题,我将不胜感激。

编辑

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

【问题讨论】:

  • 你试过删除 bin 和 obj 文件夹吗? (先备份)。
  • 你是怎么做到的 :) 我想说的是 lib 的“两个版本”

标签: c# .net visual-studio-2010


【解决方案1】:

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

更新

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

cd $(TargetDir)
del *.exe

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

【讨论】:

  • 尝试删除 bin 和 obj 文件夹,没有帮助。另外 App.exe 有 1000 行代码和 100 多个文件,重新创建项目文件不会很有趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多