【问题标题】:vshost.exe not terminating properly in Visual Studio 2015vshost.exe 在 Visual Studio 2015 中未正确终止
【发布时间】:2015-10-14 02:21:55
【问题描述】:

我负责为我的雇主测试 VS 2015 以及它如何与我们当前的应用程序配合使用。我们目前对我们拥有的所有东西都使用 VS 2013,所以我知道那里没有问题。我遇到的问题是 vshost.exe 似乎没有正确终止或其他什么。我没有缩小确切的问题范围,但到目前为止,我认为是这样。

这是我得到错误的方式:

  1. 在调试中运行我的应用程序
  2. 打开几个窗口
  3. 点击“停止调试”按钮(红色小方块)
  4. 清洁解决方案
  5. 重建解决方案

重建后,EXE 中出现以下错误:

Error       Could not copy "obj\Debug\APP.exe" to "..\..\bin\APP.exe". Exceeded retry count of 10. Failed.  
Error       Unable to copy file "obj\Debug\APP.exe" to "..\..\bin\CRM.exe". The process cannot access the file '..\..\bin\APP.exe' because it is being used by another process. 

如果我打开任务管理器并手动结束 vshost.exe 进程,我可以再次成功重建,没有问题。但是,如果我采取相同的步骤,我将无法再构建。

我在 2013 年测试了这些步骤,没有遇到任何问题。

另请注意,禁用“启用 Visual Studio 托管进程”确实可以缓解问题,但我不想禁用此选项。

还有其他人遇到过这个问题吗?我知道我们还处于早期发布阶段。有什么建议/解决方案可以尝试吗?我们的代码是否可能有问题(我非常怀疑,因为我很可能会在 2013 年得到错误)。

感谢我收到的任何帮助!

编辑:这是使用 C# 用 .Net 4.0 编写的 WPF 应用程序。另外,我已经验证如果我正常退出应用程序也会出现问题(IE我打开一个窗口然后在LastWindowClosed的关闭模式下关闭它)

第二次编辑:这是一个在 Visual Studio 2015 中出现的新问题,并添加了新的实时诊断工具。

【问题讨论】:

  • @MichaelFreidgeim 这不是重复的。受影响的 Visual Studio 版本相隔 5 年,导致此错误的功能是 2015 版的新功能,因此在旧版本中甚至不可能出现此错误。旧版本中的修复(禁用 vshost)确实有效,但如我的回答中所述,还有其他侵入性较小的修复。

标签: c# debugging msbuild visual-studio-2015 vshost.exe


【解决方案1】:

原始问题可能迟到了(我看到他有一个解决方法),但根据MSDN,VSHOST.exe 只是提高调试性能或促进部分信任调试等场景的推动力。如果您不需要该支持或可以承担在每个调试会话上启动进程和附加调试器的成本,请继续并从项目设计器禁用托管进程 -> 调试 -> 清除“启用 Visual Studio 托管进程”框

【讨论】:

    【解决方案2】:

    我发现如果我在调试设置中启用了“调试时启用诊断工具”选项,我会收到此错误。如果我禁用此选项,错误就会消失。我不确定这是否是 Visual Studio 中的错误,但我会假设是这样,除非我需要做其他事情来正确关闭它们。如果有人有问题或疑虑,请随时留言。

    【讨论】:

    • 谢谢。每天杀死 1000 次 vshost.exe 让我发疯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多