【问题标题】:Visual Studio 2017 locking filesVisual Studio 2017 锁定文件
【发布时间】:2017-05-16 08:21:51
【问题描述】:

Visual Studio 版本 15.2 (26430.6) 发布。

最近更新到上述版本后,我在尝试构建时遇到了 VS 锁定文件的持续问题。

无法将“obj\Debug\projHype.dll”复制到“bin\Debug\projHype.dll”。重试次数超过 10。失败。

还尝试在有和没有管理员权限的情况下运行 VS2017

我尝试了旧版本 Visual Studio 的建议,但无济于事。任何想法如何解决这个问题?

【问题讨论】:

  • 这意味着使用该文件的进程仍在运行。它可能是一个挂起的构建步骤,或者一个没有正确终止的测试运行器。您可以使用 Process Explorer 来查找哪个进程使用此文件句柄。我过去在各种 VS 版本和测试运行器上都遇到过这个问题。
  • 如果您在IIS下调试网站并突然终止调试,也会出现此问题。 dll 仍然加载在站点的应用程序池(实际上是应用程序域)中,直到您回收应用程序池或 IIS 后才会释放
  • 你在建设什么样的项目?您是否使用 Resharper、单元测试运行程序、构建工具、分析器或其他任何可能使用您的 dll 的东西?可能是仍在运行的外部应用程序或测试项目?
  • 我看到了同样的事情。使用进程资源管理器,锁定文件的是 DevEnv.exe,而不是它的子进程之一。它会构建好几次,然后开始失败。
  • 我遇到了这个确切的问题。 VS 进程正在锁定文件,我可以解决的唯一方法是重新启动 VS,以便我可以手动删除。很烦人!

标签: visual-studio visual-studio-2017


【解决方案1】:

对于遇到这种情况的任何人。更新到版本 26430.12 将解决此问题。看起来以前的版本包含一个错误。

【讨论】:

  • 遇到同样的问题,但它特定于 bin/Roslyn 文件夹。我正在运行 VS2017 版本 26430.13
  • 截至今天,在 VisualStudio 2019 预览版中仍然看到此行为,所以也许更新根本无法解决它。
【解决方案2】:

虽然可能有其他原因,但 testhost.exe 和 testhost.x86.exe 都可能导致阻止构建完成的锁定。症状令人困惑——测试资源管理器无限期地搅动,有时在构建中会出现超时警告。有时即使关闭 VS 也无法访问文件。

如果您使用的是 nUnit 或其他测试框架,请确保测试发现不会在您的代码中遇到任何无限循环或崩溃。如果发生这种情况,它可以挂起 testhost 可执行文件。例如,如果您使用 nUnit TestCase 或 TestCaseSource,如果其中任何一个执行可能挂起、锁定或崩溃的操作,它们将在执行测试之前调用

这是一个棘手的问题——您的测试尚未运行,但您的代码可能会锁定 VS!虽然这可能不是您的问题,但如果您有任何方式的单元测试发现,请检查它是否全部完成。

确保所有发现都完成的一种方法是使用测试本身的函数,并将它们作为 TestCase 或 TestCaseSource(或其他测试框架中的等效项)禁用。如果测试挂起或崩溃,那就是罪魁祸首。

【讨论】:

    【解决方案3】:

    对我来说,接受“运行最后一次成功构建”有助于再次运行程序。运行后,锁就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 2017-10-16
      • 2017-07-31
      • 2019-02-11
      • 2017-05-28
      • 1970-01-01
      相关资源
      最近更新 更多