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

.net VS2015生成错误:无法将指定的程序集添加到全局程序集缓存,.net,visual-studio,sharepoint,dll,windows-server-2012-r2,.net,Visual Studio,Sharepoint,Dll,Windows Server 2012 R2,我正在尝试将GAC部署到sharepoint中。部署失败,并显示以下错误消息: 部署步骤“添加解决方案”中出错:错误:无法将指定的程序集添加到全局程序集缓存:Microsoft.Practices.Sharepoint.Common.dll 问题是C:\Windows\Microsoft.NET\assembly\GAC\u MSIL\Microsoft.Practices.SharePoint.Common\v4.0\u 2.0.0\u ef4330804b3c4129\文件夹中提到的.dll

我正在尝试将GAC部署到sharepoint中。部署失败,并显示以下错误消息:

部署步骤“添加解决方案”中出错:错误:无法将指定的程序集添加到全局程序集缓存:Microsoft.Practices.Sharepoint.Common.dll

问题是
C:\Windows\Microsoft.NET\assembly\GAC\u MSIL\Microsoft.Practices.SharePoint.Common\v4.0\u 2.0.0\u ef4330804b3c4129\
文件夹中提到的.dll不知何故被另一个名为
Microsoft.Alm.Shared.Remoting.RemoteContainer.dll
的.dll锁定

只有一个可行的解决方案是重新启动windows server,但一旦我尝试部署新版本,问题就会再次出现

有没有其他解决方案来防止阻塞此DLL和其他类似DLL


谢谢

名为Microsoft.Alm.Shared.Remoting.RemoteContainer.dll的进程提供了Visual Studio IDE中的“CodeLens”功能。这个特性在VS中提供了一些不错的功能,比如在声明、源代码管理状态、测试状态和其他一些函数之上实时显示对函数的引用

如果在Visual Studio中禁用“CodeLens”,则问题将消失

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版本来防止这种情况



这一问题也受到了关注。Microsoft不认为这是一个错误,并表示不建议向GAC注册程序集并在生成过程中使用GAC中的程序集。

我遇到了相同的问题“部署步骤“添加解决方案”中出现错误:错误:无法将指定的程序集添加到全局程序集缓存:itextsharp.dll。”我从GAC卸载了itextsharp.dll,它解决了问题。

您是否能够生成解决方案以生成解决方案文件,然后使用powershell cmdlet添加SPSolution或
更新SPSolution
将解决方案添加到服务器场?您应该能够使用
-GacDeployment
标志让解决方案自动将DLL添加到GAC。很抱歉回答得太晚。不,使用powershell无助于解决此问题。在我看来,VS 2015本身就是一个障碍。因为重新启动后再进行清理|构建|部署有助于解决问题。虽然错误的结构是相同的,但它显然与不同的程序集有关,并且不可能解释此处讨论的特定问题(四年前已经回答了)。它也不能为解决这些类型的问题提供良好的一般指导,因为卸载库通常不是一个选项。这有点像有人说他们的应用程序有错误,并建议可以通过不使用该应用程序来修复。