呃,这是一个老问题,在 Visual Studio 中仍然偶尔会出现。它咬了我好几次,我已经失去了几个小时重新启动和与 VS 战斗。我敢肯定它已经在这里讨论过不止一次了。MSDN 论坛上也讨论过它。没有实际的解决方案,但有几个解决方法。在这里开始研究。
发生的事情是 VS 正在获取文件上的锁,然后不释放它。具有讽刺意味的是,该锁会阻止 VS 本身删除文件,以便在您重建应用程序时重新创建它。唯一明显的解决方案是关闭并重新启动 VS,以便它释放文件上的锁定。
我最初的解决方法是打开 bin/Debug 文件夹并重命名可执行文件。如果它被锁定,你不能删除它,但你可以重命名它。因此,您可以在末尾添加一个数字或其他内容,这样您就可以继续工作,而无需关闭所有窗口并等待 VS 重新启动。有些人甚至使用预构建事件将随机字符串附加到旧输出文件名的末尾来自动执行此操作。是的,这是一个巨大的黑客,但这个问题变得如此令人沮丧和衰弱,以至于你会做任何事情。
我后来了解到,经过更多的实验,这个问题似乎只有在您打开其中一位设计师的情况下构建项目时才会出现。因此,长期为我工作并阻止我再次处理这些愚蠢错误之一的解决方案是确保我始终在构建 WinForms 项目之前关闭所有设计器窗口。是的,这也有点不方便,但它确实比每小时重新启动 VS 两次或更多更省心。
我认为这也适用于 WPF,尽管我没有使用它,也没有亲身经历过那里的问题。
我还没有尝试在 VS 2012 RC 上复制它。不知道那里修好没。但到目前为止,我的经验是,即使在微软声称已修复它之后,它仍然会弹出。它仍然存在于 VS 2010 SP1 中。当然,我并不是说他们的程序员是不知道自己在做什么的白痴。我认为这个错误有多种原因和/或很难在实验室中可靠地复制。这与我没有亲自提交任何错误报告的原因相同(尽管我已经 +1 了其他人),因为我似乎无法可靠地复制它,就像可恶的雪人一样。
<结束没有特别针对任何人的咆哮>