尝试构建网站时出现“无法复制程序集”错误

时间:2010-02-25 17:27:44

标签: asp.net visual-studio-2008

在尝试为我们的网站构建完整的解决方案时,我遇到了其中两个错误。以下是错误的全文:

  

错误91无法将程序集“Emcom.DataAccess.dll”复制到文件“C:\ work \ evan-moor.com-trunk \ 2007.evan-moor.com \ Bin \ Emcom.DataAccess.dll”。无法将“C:\ work \ evan-moor.com-development \ Emcom.DataAccess \ bin \ Debug \ Emcom.DataAccess.dll”添加到网站。无法添加文件'Bin \ Emcom.DataAccess.dll'。该进程无法访问该文件,因为它正由另一个进程使用      C:... \ 2007.evan-moor.com \

     

错误92无法将程序集“Emcom.DataAccess.Generated.dll”复制到文件“C:\ work \ evan-moor.com-trunk \ 2007.evan-moor.com \ Bin \ Emcom.DataAccess.Generated.dll” ”。无法将“C:\ work \ evan-moor.com-development \ Emcom.DataAccess \ bin \ Debug \ Emcom.DataAccess.Generated.dll”添加到网站。无法添加文件'Bin \ Emcom.DataAccess.Generated.dll'。该进程无法访问该文件,因为它正由另一个进程使用      C:... \ 2007.evan-moor.com \

我已经完成了所有我能想到的重新安装Visual Studio以尝试解决这个问题并且没有任何作用。我的一个同事也得到了这些错误,但另一个却没有。我怀疑我们中的一个人可能已经错误地进行了合并,因为在我尝试构建trunk的解决方案时,它指的是这里的开发文件夹。

我已经检查并仔细检查了所有dll,这里引用了两个项目,并且它们都没有使用开发文件夹,我怀疑这可能导致了这个问题。我还对我们的行李箱进行了全新的检查,但仍然遇到了这些错误。然后我尝试删除所有.NET临时文件来解决它,但仍然没有运气。我做了一个谷歌搜索这个问题,并找到了一个问题的微软修补程序,涉及更换一个DLL - 但这是为Visual Studio 2003,我使用的是2008.我的计算机上有问题的dll是两个完整的版本比他们在修补程序中列出的替换版本,所以我不确定用那里提到的内容替换我所拥有的内容。

有什么想法吗?如果没有重新安装Visual Studio并重新格式化我的计算机,我就没有想法了。重新安装可能会这样做,但重新格式化只是为了修复这个错误。

3 个答案:

答案 0 :(得分:0)

你可以尝试“WhoLockMe”。它是Windows资源管理器的插件,可从上下文菜单中获得。导航到dll,使用该实用程序,如果它报告锁定,则可以使用kill process函数。

从下载 http://www.dr-hoiby.com/WhoLockMe/

使用说明可在同一网站上找到。

答案 1 :(得分:0)

我想我会回答这个,以防其他人也遇到这个问题。我的一位同事最终为我解决了这个问题。它最终成为一个不正确的构建顺序的问题,他通过移动项目引用来修正构建顺序。一个项目依赖于另一个项目,并且是在它所依赖的项目之前构建的。一旦他解决了这个问题,问题就消失了。

答案 2 :(得分:0)

我在VS 2010中遇到了同样的问题,并且在早期版本中也有它,它似乎仍然是IDE的一个错误。退出IDE用于帮助它消失,但这仅在VS 2010中有效。请查看此Microsoft支持页面了解详细信息http://support.microsoft.com/kb/887818

  

当您尝试在Microsoft中构建Microsoft Visual C#.NET解决方案时   在Visual Studio .NET 2003中,解决方案构建操作失败。你可以   收到类似于以下内容的错误消息:

     
    

无法将程序集复制到文件\ bin \ Debug \ Release \ .dll。该     进程无法访问该文件,因为它正被另一个文件使用     过程

  
     

注意通常,重新启动Visual Studio .NET 2003后不会发生此问题。

我也尝试了其他两个建议,但没有一个适合我:http://forums.asp.net/t/1288310.aspx

更正:这第一个建议对我有用;我在另一个项目的hostingEnvironment shadowCopyBinAssemblies="false"中评论了行web.config,而不是错误所指的项目中。在正确的地方完成后,错误就消失了。

  

我的团队通过构建网络找到了解决问题的方法   网站今天早上。有人把这个条目放到了web配置中   文件。 hostingEnvironment shadowCopyBinAssemblies="false"   如果您在任何机器配置或Web配置中有此条目,它将导致   这个问题。

两个

  

您需要删除hash.web文件,Open   C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET   Files \ YourWebSite,然后Serach hash.web并删除所有这些文件   然后重建。这里解释一下,hash.web
  http://blogs.msdn.com/tmarq/archive/2007/11/02/asp-net-file-change-notifications-exactly-which-files-and-directories-are-monitored.aspx