在调试时:无法复制文件,因为它正由另一个进程使用

时间:2015-12-07 11:57:54

标签: 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 Edition 2015)。这非常烦人。似乎调试过程没有正确清理。

有任何想法/建议吗?

2 个答案:

答案 0 :(得分:1)

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

问题仅在我第一次发布应用程序后才开始。 该修复程序取消选中“启用ClickOnce安全设置”,该设置位于应用程序属性“安全性”选项卡中。

答案 1 :(得分:0)

在调试模式下运行后,VS有时无法终止MSBuild32,但是当您的消息指出“访问路径' thestory.exe'被拒绝。',它表明你有一个参考被搁置。

您是否在代码中使用静态初始化程序?在尝试使用Java样式实现在C#中使用单例之前,我遇到过这个问题。 对self的静态引用使类保持打开状态,因为我从未明确地将引用置为空,所以程序无法退出。

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

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

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

    // CoreApplication.Exit();
}

值得注意的是,如果您的应用程序无法彻底退出,您几乎肯定会在代码中打开引用。

在评论中询问是否在创建新的空白UWP应用程序时运行它,然后尝试退出。

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

强制应用程序退出将终止所有.NET类,但如果您调用托管运行时之外的任何内容,它将在运行时终止后保持驻留