Sha*_*ica 81 c# visual-studio-2010 winforms
我有一个C#webforms应用程序,直到今天才一直在游泳.
现在,突然间,每次我尝试运行应用程序时,都会出现文件锁定错误:
无法将文件"obj\Debug\MyProject.exe"复制到"bin\Debug\MyProject.exe".该进程无法访问文件"bin\Debug\MyProject.exe",因为它正由另一个进程使用.
谷歌搜索错误没有提出超出明显的任何东西,即VS认为文件被锁定.它肯定是Visual Studio本身锁定文件,因为当我关闭VS并重新打开它时,项目执行正常 - 第一次.当我第二次尝试运行它时,我收到文件锁定错误.
每次我想运行应用程序时关闭VS并重新打开都不是一个可行的解决方法!如何找出锁定文件的内容,并阻止其被锁定?
编辑:另一个有趣的发现:我甚至不必运行该应用程序.只需编译一次就会导致文件锁定; 我不能连续两次编译!
此问题特定于我的解决方案中的一个项目.所有其他项目都可以正常工作,并且可以根据需要执行多次.只有这一个项目才会被锁定.
小智 120
我找到了一个适合我的简单解决方案.它是这样的:
出现问题时,只需更改顶部的构建配置(如果在"Release"中更改为"Debug",反之亦然),构建然后再更改回以前的配置并再次构建.

我想更改配置会释放vcshost和devenv.
Sha*_*ica 24
好吧,我自己解决了这个问题 - 虽然我仍然不知道为什么.我决定通过从项目中删除所有文件来隔离问题,然后重新添加它们并确定哪个文件是我的麻烦来源.因此,我一个接一个地将文件重新引入项目,编译和清理每一步......直到...我添加了最后一个......
......一切都还好.
我对原始.csproj的源代码控制进行了比较; 没有真正的差异.即使我尝试恢复到之前版本的.csproj,它仍然有效.
黑魔法.如果它有效,有时最好不要问为什么 - 只要接受它并继续前进......
编辑:问题是一个反复出现的问题,我相信当编译器在编译时打开抽象/通用表单时,我已将其隔离.
获得的经验:在编译之前,确保关闭任何抽象或通用表单或控件的表单设计器!如果没有,你必须关闭VS并重新打开!
小智 16
我们在此处发现的内容如下:在项目属性页面的"调试"选项卡中,取消选中"启用Visual Studio托管过程".我不确定这个属性是什么,但它一旦取消选中就完成了工作.
实际上你应该想要"启用Visual Studio托管过程".至少对于VS2010来说.我也有:
如果存在"$(TargetPath).locked"del"$(TargetPath).locked"如果存在"$(TargetPath)"如果不存在"$(TargetPath).locked"move"$(TargetPath)""$(TargetPath) .locked"
在预构建选项中.这个问题困扰了我很长一段时间,直到John W.提到这个复选框,我甚至注意到它存在并且很低,并且它已经没有被检查了.
另请注意,即使没有调试,-app-vshost.exe也会在后台运行.这就是每次我猜它成功构建和运行的原因.它以前没有运行过.我还尝试清理调试和释放文件夹并不断更改目标类型,除了上面所述之外没有任何工作.之前我的解决方案是在构建之间等待5分钟,这使得完成任务变得非常烦人且耗时.我没有看到行为的任何变化,其中重要的是打开或XNA与Windows窗体或打开设计器的选项卡.此问题发生在32位或64位版本中,如果我使用ALT-F4杀死应用程序或使用任务管理器将其终止,这无关紧要,理论上,这将不允许应用程序关闭或释放资源.起初我以为这是垃圾收集问题.
不幸的是,没有一个答案对我有用。这就是解决它的方法:
Win Key+R并运行resmon.exe。在那里你会找到 VS 声称正在使用该文件的 EXE 进程。右键单击并结束该过程。尽管您可能会收到“访问被拒绝”错误消息,但它会被挂起,您将能够再次构建。
| 归档时间: |
|
| 查看次数: |
102710 次 |
| 最近记录: |