我试图将GAC部署到sharepoint中。部署失败,并显示以下错误消息:
在部署步骤中出现错误'添加解决方案':错误:无法将指定的程序集添加到全局程序集缓存中: Microsoft.Practices.Sharepoint.Common.dll
问题是,C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Practices.SharePoint.Common\v4.0_2.0.0.0__ef4330804b3c4129\
文件夹中提到的.dll被另一个名为Microsoft.Alm.Shared.Remoting.RemoteContainer.dll
的.dll锁定。
只有一个正在运行的解决方案是重启Windows服务器,但是一旦我尝试部署更新版本,问题就会再次发生。
有没有其他解决方案如何防止阻止此类和其他类似的dll?
由于
答案 0 :(得分:1)
名为Microsoft.Alm.Shared.Remoting.RemoteContainer.dll
的流程提供了功能" CodeLens"在Visual Studio IDE中。此功能在VS中提供了一些不错的功能,例如在声明,源控制状态,测试状态和其他一些功能上实时显示对函数的引用。
如果你禁用" CodeLens"问题就会消失。在Visual Studio中
Visual Studio选项>文本编辑器>所有语言>代码镜头
如果您不想在该计算机上一直禁用CodeLens,则可以在部署之前终止Microsoft.Alm.Shared.Remoting.RemoteContainer.dll
。这将暂时禁用所有正在运行的Visual Studio实例中的CodeLens,但CodeLens将在重新启动Visual Studio后再次运行。
要在尝试将程序集注册到GAC(全局程序集缓存)之前自动终止进程,请在调用gacutil之前将以下命令添加到同一位置:
taskkill /f /im Microsoft.Alm.Shared.Remoting.RemoteContainer.dll
问题的实际触发因素是,解决方案中至少有一个项目从Visual Studio IDE中加载GAC中的程序集Microsoft.Practices.Sharepoint.Common.dll
。您可以通过将程序集引用指向GAC之外的Microsoft.Practices.Sharepoint.Common.dll
版本来防止这种情况。
问题也是discussed at Microsoft Connect。 Microsoft不认为这是一个错误,并且说不会向GAC注册程序集,并且不建议在构建期间使用GAC中的程序集。
答案 1 :(得分:0)
我遇到了同样的问题“ 在部署步骤'添加解决方案'中发生错误:错误:无法将指定的程序集添加到全局程序集缓存中:itextsharp.dll。”我卸载了itextsharp。来自GAC的dll,它解决了该问题。