在构建我的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.
Run Code Online (Sandbox Code Playgroud)
现在我已经发现杀死这个过程了
Weingartner.WeinCad.vhost.exe
Run Code Online (Sandbox Code Playgroud)
工作(有时),但这让我很紧张.有什么方法可以阻止这种情况发生吗?
我的调试器设置是

更新: 可以在Microsoft Connect中找到重现此错误的示例项目.我还测试并验证了下面接受的答案中给出的解决方案适用于该示例项目.如果此解决方案不适合您,您可能遇到了另一个问题(属于另一个问题).
这是一个之前提出的问题,无论是Stack Overflow还是其他地方,但我发现的这些建议都没有帮助我,所以我只想尝试一个新问题.
场景:我有一个简单的Windows窗体应用程序(C#,.NET 4.0,Visual Studio 2010).它有大多数其他形式继承的基本形式,它使用Entity Framework(和POCO类)进行数据库访问.没什么好看的,没有多线程或任何东西.
问题:一切都很好.然后,当我即将启动应用程序时,Visual Studio无法构建.我收到警告"无法删除文件'... bin\Debug\[ProjectName] .exe'.访问路径'... bin\Debug\[ProjectName] .exe'被拒绝." 和错误"无法将文件'obj\x86\Debug\[ProjectName] .exe'复制到'bin\Debug\[ProjectName] .exe'.进程无法访问文件'bin\Debug\[ProjectName] .exe "因为它被另一个进程使用了." (我在运行Rebuild时得到警告和错误,但只运行Build时出错 - 不认为这是相关的吗?)
我完全理解警告和错误消息的内容:Visual Studio显然试图覆盖exe文件,同时由于某种原因它同时锁定它.但是,这并没有帮助我找到问题的解决方案......我发现唯一有效的方法是关闭Visual Studio并重新启动它.然后构建和启动工作,直到我在某些表单中进行更改,然后我再次遇到相同的问题并且必须重新启动...非常令人沮丧!
正如我上面提到的,这似乎是一个已知的问题,所以有很多建议的解决方案.我将列出我在这里尝试过的内容,以便人们知道要跳过的内容:
将以下内容添加到项目的预构建事件中:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
Run Code Online (Sandbox Code Playgroud)将以下内容添加到项目属性(.csproj文件):
<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
Run Code Online (Sandbox Code Playgroud)但是,他们都没有为我工作,所以你可能会明白为什么我开始有点沮丧.我不知道在哪里可以看,所以我希望有人能给我一些东西!这是VS中的一个错误,如果是这样的补丁?或者我做错了什么,我有一个循环引用或类似的,如果是这样我怎么能找到?
任何建议都非常感谢:)
更新:如在下面评论中提及,我也使用Process Explorer的,它实际上检查是 Visual Studio中被锁定的文件.
Windows 2008 R2 - 内核(系统进程PID = 4)长时间锁定文件和文件夹.例如,当删除文件时,文件可能会保持锁定1分钟或更长时间,并且只有在删除之后才能保持锁定状态.在另一些情况下,我遇到了无法删除的文件或文件夹.ProcMon显示系统进程持有这些资源的句柄几分钟然后发布它们我提到的资源都不是系统资源,只有我安装的文件和文件夹由我的应用程序处理.
我正在使用Visual Studio 2010,如何设置或自动将输出文件的所有者从Visual Studio(例如可执行文件)更改为管理员以外的用户?
所有输出文件当前都归管理员所有(由于Visual Studio是通过管理权限启动的),所以有时由于访问权限我无法删除这些文件.
有时Visual Studio本身也不能删除它(在我运行可执行文件之后)直到几分钟,当我需要重建那些可执行文件时它真的很烦人.有谁知道这里的实际问题是什么?
错误信息是: error LNK1168: cannot open [path to file].exe for writing
permissions file administrator visual-studio-2010 visual-studio
c# ×2
file ×2
.net ×1
build ×1
delete-file ×1
kernel ×1
locking ×1
permissions ×1
process ×1
winforms ×1