VS2015生成错误:无法将指定的程序集添加到全局程序集缓存中

时间:2016-03-31 14:38:32

标签: .net visual-studio sharepoint dll windows-server-2012-r2

我试图将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?

由于

2 个答案:

答案 0 :(得分:1)

名为Microsoft.Alm.Shared.Remoting.RemoteContainer.dll的流程提供了功能" CodeLens"在Visual Studio IDE中。此功能在VS中提供了一些不错的功能,例如在声明,源控制状态,测试状态和其他一些功能上实时显示对函数的引用。

如果你禁用" CodeLens"问题就会消失。在Visual Studio中

  

Visual Studio选项>文本编辑器>所有语言>代码镜头

Visual Studio Options > Text Editor > All Languages > Code Lens

如果您不想在该计算机上一直禁用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,它解决了该问题。