C# 调试时:无法复制文件,因为其他进程正在使用该文件

C# 调试时:无法复制文件,因为其他进程正在使用该文件,c#,windows,uwp,C#,Windows,Uwp,每次在调试模式下启动Windows 10 UWP应用程序时,在第一次启动失败后都会显示以下消息 Error : DEP0500 : The folder "C:path\projectname\bin\x86\Debug\AppX" could not be deleted. Access to the path 'thestory.exe' is denied. thestory 到目前为止,我找到的唯一修复方法是在每次调试会话后重新启动VS(Community Editio

每次在调试模式下启动Windows 10 UWP应用程序时,在第一次启动失败后都会显示以下消息

Error : DEP0500 : The folder "C:path\projectname\bin\x86\Debug\AppX" could not be deleted. 
Access to the path 'thestory.exe' is denied.    thestory    
到目前为止,我找到的唯一修复方法是在每次调试会话后重新启动VS(Community Edition 2015)。这是非常恼人的。调试过程似乎没有被正确清理


有什么想法/建议吗?

VS在调试模式下运行后有时无法终止MSBuild32,但由于您的消息声明“对路径“thestory.exe”的访问被拒绝”,这表明您的引用处于打开状态

在代码中使用静态初始化器吗?在尝试使用java风格的实现在C#中使用单例之前,我遇到了这个问题。 self的静态引用使类保持打开状态,由于我从未显式地将引用置空,程序无法退出

如果需要确保应用程序将在VS中关闭,可以向关闭事件添加事件处理程序,并实现以下操作:

if (Debugger.IsAttached) {
    Application.Current.Exit();

    // If Application.Exit fails, try...

    // CoreApplication.Exit();
}
值得注意的是,若您的应用程序不能干净地退出,那个么几乎可以肯定,您的代码中有一个引用处于打开状态

在注释中询问,当您创建一个新的空白UWP应用程序,运行它,然后尝试退出时,是否会发生这种情况

我建议您作为紧急事项进行测试-如果此应用程序出现问题已有一段时间,但空白的UWP应用程序工作正常,则表明代码中存在问题


强制应用程序退出将终止任何.NET类,但如果您在托管运行时之外调用任何东西,则在运行时终止后,它将保持驻留状态

我遇到了同样的问题,并尝试了在网络上找到的所有解决方案

这个问题只有在我第一次发布应用程序后才会出现。
修复程序正在取消选中“应用程序属性安全”选项卡中的“启用ClickOnce安全设置”。

它确实会在每个调试会话中出现,正如它在问题中所写的那样,因此现在对我来说,这不仅仅是一个小问题。看起来问题已经发生一年多了(请参阅),因此等待修复不是一个选项。您可以尝试降级到VS 2013,因为在该版本中问题要小得多。另外,我确实看到您在每个调试会话中都会出现这种情况,我意识到这不是一个小问题(到目前为止,我已经忍受了两年)。您是否有任何未终止的线程或任何处于打开状态的引用?您的意思是它发生在一个简单的空白项目中,还是只发生在一个特定的项目中?您是否已更新到VS 2015更新1?您是否有任何未终止的线程或任何处于打开状态的引用?您是否在所有一次性物品上使用“使用”块?看起来您有一个线程保持程序打开。我们需要更多信息以进一步提供帮助。您可以尝试添加事件处理程序以关闭,检查是否附加了调试器,如果有,请调用
Application.Current.Exit()。如果您使用的是附加的调试器,这将关闭应用程序。UWP文档声明在生产应用程序中不使用此选项,因此在使用
if(debugger.IsAttached)
调用调试器之前,请检查是否附加了调试器,只需在此处添加注释即可。当我尝试运行我的UWP测试时,这种情况会发生几次,从技术上讲,UWP应用程序承载所有测试。所以我相信这不是固定的。即使在我一次又一次重新启动VS之后,它也没有任何帮助。我正在使用VS2015+更新2。