另一个过程正在使用程序集

时间:2011-07-29 08:15:04

标签: visual-studio-2010 process .net-assembly filelock

我已将运行3.5 vs2008的WCF项目升级到.net 4.0 vs2010并遇到问题。从vs2010编译时,我的服务实现项目中的程序集被devenv.exe锁定(注意没有调试 - 仅编译)。重新启动vs2010时会释放程序集,并在每次重新启动后编译一次。我到底尝试了什么:

  1. 插入PreBuild事件以解锁程序集
  2. 删除了汇编版外卡
  3. 已禁用源代码
  4. 停止了Windows搜索
  5. 停止了IIS
  6. 退出vs2010,删除了sln.suo和bin / obj文件夹
  7. 立即阅读博客和SO帖子3天:)
  8. 删除了服务项目中的所有引用并将其读取
  9. 我几乎没有想法,似乎微软没有解释这个没有解决的问题。任何想法将不胜感激!

    错误讯息:

      

    无法复制文件“.....某些   path ... \ Debug \ HelperLibrary.Service.dll“to   “斌\调试\ HelperLibrary.Service.dll”。该过程无法访问   文件'bin \ Debug \ HelperLibrary.Service.dll'因为正在使用它   另一个过程。

    奖励信息: 使用msbuild从提示符编译时,没有问题。仅在从vs2010编译时。当然,旧的vs2008解决方案仍然有效。

    Microsoft Ticket: https://connect.microsoft.com/VisualStudio/feedback/details/682485/use-of-testaccessor-and-impl-of-codeaccesssecurityattribute-locks-assembly

2 个答案:

答案 0 :(得分:0)

这是一个很长的镜头,但是你的web.config是否有可能将“shadowCopyBinAssemblies”设置为“false”?或者上游配置文件是否关闭了该设置?

我认为这可能会导致您遇到的问题。

答案 1 :(得分:0)

好的,所以我的同事从假期回来并说他早些时候碰到了这个问题:) 似乎组件被锁定(或由构建过程保持)的根本原因是由于使用了testaccessors来测试私有方法,结合CodeAccessSecurityAttribute的实现。请注意,这不是Visual Studio 2008中的问题,而是仅在2010年 在这里看另一个案例:

http://social.microsoft.com/Forums/en/Offtopic/thread/41ceebce-1ecf-4962-86d0-e68050df4a99

我还没有为此找到解决方案,除了将私有方法更改为公开之外 - 我将为此问题创建一个新帖子。