我已将运行3.5 vs2008的WCF项目升级到.net 4.0 vs2010并遇到问题。从vs2010编译时,我的服务实现项目中的程序集被devenv.exe锁定(注意没有调试 - 仅编译)。重新启动vs2010时会释放程序集,并在每次重新启动后编译一次。我到底尝试了什么:
我几乎没有想法,似乎微软没有解释这个没有解决的问题。任何想法将不胜感激!
错误讯息:
无法复制文件“.....某些 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
答案 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
我还没有为此找到解决方案,除了将私有方法更改为公开之外 - 我将为此问题创建一个新帖子。