C# Visual Studio解决方案没有';无法编译,但project可以

C# Visual Studio解决方案没有';无法编译,但project可以,c#,.net,visual-studio-2017,C#,.net,Visual Studio 2017,当我构建或重建解决方案时,会出现以下错误: 错误CS2012无法打开“C:\Users\myUserName\Documents\Visual Studio 2017\Projects\mySolutionFolder\myProjectFolder\obj\Debug\myExecutable.exe”进行写入--“访问路径”C:\Users\myUserName\Documents\Visual Studio 2017\Projects\mySolutionFolder\myProjectF

当我构建或重建解决方案时,会出现以下错误:

错误CS2012无法打开“C:\Users\myUserName\Documents\Visual Studio 2017\Projects\mySolutionFolder\myProjectFolder\obj\Debug\myExecutable.exe”进行写入--“访问路径”C:\Users\myUserName\Documents\Visual Studio 2017\Projects\mySolutionFolder\myProjectFolder\obj\Debug\myExecutable.exe被拒绝。”

然而,当我构建项目时,它编译得很好。一旦我构建了项目,那么解决方案构建就不会抛出任何错误。我正在运行visual Studio 2017

我的尝试(没有成功):

  • 解决方案中还有第二个项目,但我已经卸载了它,它仍然存在错误
  • 我删除了解决方案文件,并让visual studio创建了一个新文件
  • 其他信息:
    这个错误有点随机。通常它会出错,但有时不会。在“清理”和重建之间等待的时间越长,出错的几率就越小。即使在管理员模式下运行,我也会遇到同样的问题。我开始认为这是硬盘问题。

    应用程序仍在运行

    \Debug\myExecutable.exe“被拒绝”。它告诉您无法替换它,因为它当前处于打开状态

    打开任务管理器,确保您结束了该过程,然后它就会正常工作

    当我犯错误时,通常会发生这种情况


    希望这能有所帮助

    myExecutable.exe仍有一个打开的文件句柄。可能是因为它仍在运行(请检查任务管理器/process explorer)

    如果不是这样,您可以尝试找出哪个进程打开了该文件的句柄:

  • 得到
  • 按Ctrl-F键查找句柄
  • 输入myExecutable.exe并查找具有该文件句柄的进程

  • 作为最后手段:重新启动计算机。有时,防病毒程序会抓住该文件的一个钩子,并且永远不会放弃它。非常烦人。拒绝访问文件并不表示应用程序正在运行。它也可以是权限,或者某些进程将文件锁定以进行读取或写入。它也可能表示驱动器出现故障。@Amy,是的,但在这种情况下,我希望它不在“调试”下的默认生成文件夹中,虽然我遇到了您在与winscp集成时描述的问题,但在任何情况下,您是对的,并不总是意味着它正在运行。您可以尝试清理您的解决方案。这种情况在我身上发生过好几次。该进程也可能仍在运行。-使用taskkill/IM:myExecutable.exe/F/t是否启用了任何第三方插件(重塑器,…)或活动单元测试等功能?如果是,请逐步禁用它们并检查问题是否仍然存在。检查
    msbuild
    dotnet
    进程是否仍在运行,并尝试结束它。