【问题标题】:Visual Studio solution doesn't compile, but project doesVisual Studio 解决方案无法编译,但项目可以
【发布时间】:2017-06-05 17:38:47
【问题描述】:

当我构建或重建我的解决方案时,我得到了错误:

错误 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。

我尝试过的(没有成功):

  1. 解决方案中有第二个项目,但我已卸载它,但仍然出错。
  2. 我删除了解决方案文件并让 Visual Studio 创建了一个新文件。

附加信息: 这个错误有点随机。通常它会出错,但有时不会。我在“清理”和重建之间等待的时间越长,出错的几率就越低。即使在管理员模式下运行,我也有同样的问题。我开始认为这是一个硬盘问题。

【问题讨论】:

  • 您可以尝试清理您的解决方案。这在我身上发生过几次。该过程也可能仍在运行。 -- 使用taskkill /IM:myExecutable.exe /F /T
  • 您是否启用了任何第三方插件(reshaper,...)或诸如实时单元测试之类的功能?如果是这样,请逐步禁用它们并检查问题是否仍然存在。
  • 检查msbuilddotnet 进程是否仍在运行并尝试结束它。

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


【解决方案1】:

应用程序仍在运行。

\Debug\myExecutable.exe' 被拒绝。'告诉你你不能替换它,因为它目前是打开的。

打开任务管理器并确保结束该进程,然后它应该可以正常工作。

当我收到该错误时,通常会发生这种情况。

希望对你有帮助

【讨论】:

  • 作为最后手段:重新启动计算机。有时,防病毒程序会抓住该文件的钩子并且永远不会放过它。非常烦人。
  • 拒绝访问文件并不严格表明应用程序正在运行。它也可以是权限,或者某些进程已锁定文件以进行读取或写入。它还可以指示驱动器故障。
  • @Amy,是的,但在这种情况下,我希望它不在调试下的默认构建文件夹中,尽管我在完成与 winscp 的集成时遇到了你描述的问题,但是无论如何,你是对的,并不总是意味着它正在运行。
【解决方案2】:

myExecutable.exe 的文件句柄仍处于打开状态。可能是因为它仍在运行(检查任务管理器/进程资源管理器)。

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

  1. 获取Process Explorer
  2. 按 Ctrl-F 查找句柄
  3. 输入 myExecutable.exe 并查找具有该文件句柄的进程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多