我无法在我们的某个解决方案上安装/升级/卸载任何nuget包。这与PCL无关,因为它在两台机器上都是一样的。解决方案中的三个项目之一可以使用nuget进行更新,其他两个(较大的项目)可以使用下面的堆栈跟踪进行更新。
有没有人看过这个或知道如何解决它?我们在packages.config中没有重复的软件包名称,清除它们,文件夹和引用没有帮助,我们正在管理模式下运行并将其更新为最新版本。
虽然类似于这些[1],[2]和[3],但堆栈跟踪不匹配,并且没有任何修复工作。
[1] Visual Studio 2015, Nuget and “same key has already been added.”
[2] An item with the same key has already been added while Installing nuget package
[3] installing nuget package "same key has already been added."
Attempting to gather dependencies information for package 'jQuery.1.11.3' with respect to project 'www', targeting '.NETFramework,Version=v4.5'
Attempting to resolve dependencies for package 'jQuery.1.11.3' with DependencyBehavior 'Lowest'
Resolving actions to install package 'jQuery.1.11.3'
Resolved actions to install package 'jQuery.1.11.3'
Removed package 'jQuery.1.6.4' from 'packages.config'
Executing script file 'xxx\projectName\packages\jQuery.1.6.4\Tools\uninstall.ps1'...
Successfully uninstalled 'jQuery.1.6.4' from www
Adding package 'jQuery.1.11.3' to folder 'xxx\projectName\packages'
Added package 'jQuery.1.11.3' to folder 'xxx\projectName\packages'
Added package 'jQuery.1.11.3' to 'packages.config'
Executing script file 'xxx\projectName\packages\jQuery.1.11.3\tools\install.ps1'...
True
IsDirty : False
FileCount : 1
Name : jquery-1.11.3.intellisense.js
Collection : System.__ComObject
Properties : System.__ComObject
DTE : System.__ComObject
Kind : {6BB5F8EE-4483-11D3-8BCF-00C04F8EC28C}
ProjectItems : System.__ComObject
Object : System.__ComObject
ExtenderNames : {}
ExtenderCATID : {610D4615-D0D5-11D2-8599-006097C68E81}
Saved : True
ConfigurationManager :
FileCodeModel :
Document :
SubProject :
ContainingProject : System.__ComObject
Successfully installed 'jQuery 1.11.3' to www
Install failed. Rolling back...
Removed package 'jQuery 1.11.3' from 'packages.config'
Executing script file 'xxx\projectName\packages\jQuery.1.11.3\Tools\uninstall.ps1'...
True
Package 'jQuery.1.6.4' already exists in folder 'xxx\projectName\packages'
Added package 'jQuery.1.6.4' to 'packages.config'
Executing script file 'xxx\projectName\packages\jQuery.1.6.4\Tools\install.ps1'...
Removing package 'jQuery 1.11.3' from folder 'xxx\projectName\packages'
Removed package 'jQuery 1.11.3' from folder 'xxx\projectName\packages'
System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
at NuGet.PackageManagement.VisualStudio.BindingRedirectResolver.GetBindingRedirects(IEnumerable`1 assemblies)
at NuGet.PackageManagement.VisualStudio.BindingRedirectResolver.GetBindingRedirects(IEnumerable`1 assemblyPaths, AppDomain domain)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.<AddBindingRedirectsAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.<AddBindingRedirectsAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.<AddBindingRedirectsAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.<<AddBindingRedirects>b__59_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.AddBindingRedirects()
at NuGet.ProjectManagement.MSBuildNuGetProject.PostProcessAsync(INuGetProjectContext nuGetProjectContext, CancellationToken token)
at NuGet.PackageManagement.NuGetPackageManager.<ExecuteNuGetProjectActionsAsync>d__42.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at NuGet.PackageManagement.NuGetPackageManager.<ExecuteNuGetProjectActionsAsync>d__42.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.UI.UIActionEngine.<ExecuteActionsAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.UI.UIActionEngine.<PerformActionAsync>d__3.MoveNext()
========== Finished ==========
答案 0 :(得分:1)
为了帮助其他人解决这个问题,我发现这是因为我们的slaveAssembly在我们的web.config中没有绑定重定向(这种情况发生在使用uCommerce重定向他们的dll引用时),例如
<dependentAssembly>
<assemblyIdentity name="Infralution.Licensing" publicKeyToken="3e7e8e3744a5c13f" />
<codeBase version="4.7.1.0" href="bin\ucommerce\Infralution.Licensing.dll" />
</dependentAssembly>
我已经检查了nuget更改日志,并且similar thing reported here因此会等待最新版本,看看是否能解决它。
它似乎也存在我所报告的别名引用的问题