在VS2012 c#项目的构建过程中,我一直得到这个错误
Error 41 Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe".
Exceeded retry count of 10. Failed.
Error 42 Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file
'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another
process.
现在我知道该终止进程了
Weingartner.WeinCad.vhost.exe
(有时)有用,但这让我很紧张。有办法阻止这一切发生吗?
调试器设置为
使用Ms进程资源管理器查看是否需要在Windows 7中打开“应用程序体验”
在我的情况下,所有其他建议都不起作用(Windows 7, VS2019)
编译后,生成的. exe文件被重新锁定约一分钟。另一个奇怪的观察:当删除。exe文件时,它像往常一样消失在文件资源管理器中,但在刷新时(F5)重新出现。
您可以使用MS进程资源管理器来查找是否有任何进程持有生成的. exe文件的句柄。为此,查看进程资源管理器的“下窗格”,选择查看句柄而不是dll,并使用“查找”来搜索您的. exe文件。
这告诉我,这是Windows 7的“系统”进程,得到了一个句柄。exe。
一些研究显示,我必须打开Windows的“应用程序体验”服务(“自动启动”)才能永久摆脱这种奇怪的行为。
以下是更多信息:
在什么情况下,系统进程(PID 4)保留一个打开的文件句柄?
我在Windows 8上的VS 2012 Version 11.0.60610.01 Update 3上遇到了同样的问题
没有打开设计器窗口,项目是一个简单的控制台应用程序。
删除访问该文件的vshost进程在大多数情况下都不起作用,因为该进程没有访问该文件。
最简单的工作方法是将项目从解决方案中删除,在解决方案中构建另一个项目,然后将原始项目添加回来。
这是一种刺激和浪费时间,但这是我所知道的所有其他选择中最便宜的。
希望这对你有所帮助……