bra*_*ing 328 c# build process visual-studio-2012
在构建我的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)
工作(有时),但这让我很紧张.有什么方法可以阻止这种情况发生吗?
我的调试器设置是
Ger*_*ard 363
我在Visual Studio 2013中遇到过类似的错误消息.
大多数情况下,我发现由于异常导致调试进程停止时出现这种情况.
当clean + build没有为我解决这个问题时,我通过执行以下操作取得了成功:
bin
和obj
文件夹,和自Visual Studio 2003以来,这个"bug"已经存在.
最后,我还发现我可以通过简单地重命名可执行文件然后删除它来解决这个问题.
Geo*_*off 106
在Visual Studio Premium 2013(更新3)中,我使用预构建的单行解决了这个问题:
(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)
Run Code Online (Sandbox Code Playgroud)
这将优雅地删除任何旧的PDB文件(如果可以),然后重命名带有.old.pdb
扩展名的任何内容.一个很好的副作用是,如果旧的PDB仍然被锁定,它只是将另一个.old片段添加到文件名中,并且下次重新启动Visual Studio并进行构建时它们都会被清除.
例如,构建/调试会话1保持MyProject.pdb
锁定状态.
下次构建时:
MyProject.pdb
- >MyProject.old.pdb
然后,构建/调试会话2被启动,并且都 MyProject.pdb
和MyProject.old.pdb
仍被锁定:
MyProject.old.pdb
- > MyProject.old.old.pdb
MyProject.pdb
- >MyProject.old.pdb
最后,重新启动Visual Studio并进行全新构建将摆脱这两者,并像往常一样继续该过程.
Rus*_*ini 63
这是因为您关闭了应用程序,但它仍然在后台运行.
临时解决方案:
永久解决方案:您必须通过编码关闭您的应用程序.这是代码......
System.Windows.Forms.Application.Exit();
Run Code Online (Sandbox Code Playgroud)
您必须将此代码以所有形式放入表单的结束事件中.例:
private void frm_menu_FormClosing(object sender, FormClosingEventArgs e)
{
System.Windows.Forms.Application.Exit();
}
Run Code Online (Sandbox Code Playgroud)
gbj*_*anb 25
.vhost.exe是一个调试程序进程,因此看起来正在调试的进程没有正确关闭.有可能你有一个让它保持活动并且没有正确停止调试过程的错误 - 当你点击'停止调试'而不是实际杀死调试器时,有一些选项可以从进程中分离出来,所以也许你有这个设置.
但这就是问题 - 您尝试复制的文件被操作系统锁定(即仍在使用),因此它会阻止复制.确保该文件是免费的,您将能够复制.
Nai*_*air 15
通过提供以下预构建操作,我能够解决这个问题(VS 2010);
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
Run Code Online (Sandbox Code Playgroud)
小智 12
引用:
解决方法是将其放在>项目的预构建事件命令行属性中(在构建事件选项卡中):
代码片段
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
Run Code Online (Sandbox Code Playgroud)
在某些情况下,在运行 IISExpress 时(Build || Rebuild)在Visual Studio中 遇到此异常:
无法将文件"obj\Debug\YourProjectName.dll" 复制到bin\YourProjectName.dll".进程无法访问文件'bin\YourProjectName.dll',因为它正由另一个进程使用
Run Code Online (Sandbox Code Playgroud)tasklist /fi "imagename eq iisexpress.exe" |find ":" > nul if errorlevel 1 taskkill /f /im "iisexpress.exe"
你很好2去!
小智 7
请按照以下步骤操作
以上步骤永久解决了错误:)
我想我解决了它Break all processes when one process breaks
在调试选项中删除复选标记(操作的第一个屏幕截图->第二个选项)。
自从我取消选中它以来,它一直在构建/运行良好。
我在我的项目中使用 MySql NET 连接器和 DevExpress 控件。可能是因为这个标志被激活,其中之一没有很好地处理连接、绑定等。
编辑:绝对有效!不再有“无法复制文件”,也不再有表单设计器错误。
杀死进程w3wp.exe(IIS)通常会解决这个问题.
通常,您可以通过导航到bin文件夹并尝试删除它来了解锁定文件的进程.如果另一个进程正在使用它,将弹出的错误消息将包含需要被杀死的进程的名称.
似乎通过更改项目的程序集名称可以解决问题.
所以不要这样
我把它改成了这个
请注意,我刚刚将其更改Increment and Recall
为Increment_Recall
,我只是删除了空格.它现在对我很好.
我的 10 美分贡献。
我在 VS 2015 Update 2 上偶尔还是会遇到这个问题。
我发现切换编译目标可以解决问题。
试试这个:如果你在 DEBUG 中切换到 RELEASE 和 build,然后回到 DEBUG。问题消失了。
斯特凡诺
归档时间: |
|
查看次数: |
283811 次 |
最近记录: |