Jus*_*tin 32 visual-studio-2008 visual-studio
对于我的一个ASP.NET 3.5应用程序,每次尝试构建Web应用程序时,它都会在Visual Studio 2008中引发以下构建错误:
错误165无法将文件"C:\ InOne\Common\DexProcessor\bin\Debug\DexProcessor.dll"复制到"bin\DexProcessor.dll".该进程无法访问文件'bin\DexProcessor.dll',因为它正由另一个进程使用.InVision2错误166无法将文件"C:\ InOne\Common\DexParser\bin\Debug\InOne.DexParser.dll"复制到"bin\InOne.DexParser.dll".该进程无法访问文件'bin\InOne.DexParser.dll',因为它正由另一个进程使用.InVision2错误167无法将文件"C:\ InOne\Common\AlertProcessor\bin\Debug\InOne.Invision.AlertProcessing.dll"复制到"bin\InOne.Invision.AlertProcessing.dll".该进程无法访问文件'bin\InOne.Invision.AlertProcessing.dll',因为它正由另一个进程使用.InVision2错误168无法将文件"C:\ InOne\Common\InVision.BusinessLogic\bin\Debug\InVision.BusinessLogic.dll"复制到"bin\InVision.BusinessLogic.dll".该进程无法访问文件'bin\InVision.BusinessLogic.dll',因为它正由另一个进程使用.InVision2错误169无法将文件"C:\ InOne\Common\InVision.Common\bin\Debug\InVision.Common.dll"复制到"bin\InVision.Common.dll".该进程无法访问文件'bin\InVision.Common.dll',因为它正由另一个进程使用.InVision2错误170无法将文件"C:\ InOne\Data\bin\Debug\InVision.Data.dll"复制到"bin\InVision.Data.dll".该进程无法访问文件'bin\InVision.Data.dll',因为它正由另一个进程使用.InVision2错误171无法将文件"C:\ InOne\Common\InVision.DataAccessLayer\bin\Debug\InVision.DataAccessLayer.dll"复制到"bin\InVision.DataAccessLayer.dll".该进程无法访问文件'bin\InVision.DataAccessLayer.dll',因为它正由另一个进程使用.InVision2错误172无法将文件"C:\ InOne\Common\InVision.DataAccessLayer.SqlClient\bin\Debug\InVision.DataAccessLayer.SqlClient.dll"复制到"bin\InVision.DataAccessLayer.SqlClient.dll".该进程无法访问文件'bin\InVision.DataAccessLayer.SqlClient.dll',因为它正由另一个进程使用.InVision2
这刚刚开始发生在一周前,非常烦人...我必须进入web应用程序的bin文件夹并删除pdb文件,然后它会让我删除dll的大部分时间.每隔一段时间它就不会让我这样我必须关闭Visual Studio然后它才能让我删除它们.我检查了它是锁定dll的Visual Studio(devenv).重新启动机器没有帮助.
这真的会降低我的工作效率,有什么办法可以解决这个问题吗?
如前所述,Visual Studio 2008(devenv.exe)是锁定DLL的进程.
我注意到了......当它成功编译时,它将所有DLL复制到bin文件夹中,然后将它们全部删除,然后将新的集合复制到bin中.如果不成功,则复制第一组DLL,然后失败.所以它似乎是使用bin文件夹2个东西,它应该只为1.这有帮助??
Jus*_*tin 18
问题最终是在web.config中有人添加了:
hostingEnvironment shadowCopyBinAssemblies="false"
Run Code Online (Sandbox Code Playgroud)
评论完之后,一切都开始建立好了.什么样的恶梦!!
Ben*_*n S 13
使用ProcessExplorer来找出进程打开了该文件,并从那里走.
如果进程当前正在使用这些DLL,则无法删除并重写它.在编译时,您必须使用这些DLL来终止或以其他方式停止进程.
小智 12
我已经和这个问题斗争了多年!
您是否尝试将此添加到您的PREBUILD活动中?
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)
有关详细信息,请参阅此处:http: //nayyeri.net/file-lock-issue-in-visual-studio-when-building-a-project
这是另一个线程,有更多的东西要尝试......
小智 10
对我有用的是以下预建活动:
if exist "$(TargetPath).locked.bak" del "$(TargetPath).locked.bak"
if exist "$(TargetPath).bak" del "$(TargetPath).bak"
if exist "$(TargetPath).locked" ren "$(TargetPath).locked" "$(TargetFileName).locked.bak"
if exist "$(TargetPath)" ren "$(TargetPath)" "$(TargetFileName).bak"
Run Code Online (Sandbox Code Playgroud)
在我的例子中我注意到,正在创建2个文件,无法删除.但是,您可以重命名它们(如果您尝试删除它们,它们仍在使用中).在下一个版本中,重命名的文件不再使用(锁定被删除)并且可以删除它们,这就是上面的脚本所做的事情,之后它可以安全地重命名新的锁定文件,这样就不会产生问题.构建输出.
在这里和其他地方发布的其他预构建事件对我没有多大帮助(它们仅用于一次额外构建或仅在问题再次出现之前进行了一些).所以现在我正在使用上面发布的那个用于我的调试目的.
| 归档时间: |
|
| 查看次数: |
63876 次 |
| 最近记录: |