本文介绍了安装的NuGet包"相同的密钥已被添加&QUOT。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图安装Microsoft.Bcl.Build 1.0.14



的NuGet返回

 安装'Microsoft.Bcl.Build 1.0.14。成功安装Microsoft.Bcl.Build 1.0.14。添加Microsoft.Bcl.Build 1.0.14来LeadTracker.Calendar。卸载Microsoft.Bcl.Build 1.0.14。成功卸载Microsoft.Bcl.Build 1.0.14。安装失败。回滚...具有相同键的项已被添加。 

这也恰好与json.net包等。



我可以添加南希和topshelf但不json.net和bcl。



我在VS2012尝试过了,2013年我自己也尝试卸载的NuGet和重新安装。我也曾尝试加入的NuGet到一个空的类库和一个空的控制台应用程序。总是返回同样的错误。



这也恰好与json.net包等。



我有也没有包试图文件



任何想法最欣赏的。



下面是命令和堆栈跟踪

  PM>安装封装Microsoft.Bcl.Build安装Microsoft.Bcl.Build 1.0.14。您是来自微软,到可在http://go.microsoft.com/fwlink/?LinkId=329770许可协议下载Microsoft.Bcl.Build。检查包装额外的依赖关系,这可能会带着自己的许可协议(S)。您使用的程序包和依赖关系构成您的许可协议的接受。如果您不接受许可协议(S),然后从设备中删除相关组件。成功安装Microsoft.Bcl.Build 1.0.14。添加Microsoft.Bcl.Build 1.0.14来GoogleCalendarIntegration。卸载Microsoft.Bcl.Build 1.0.14。成功卸载Microsoft.Bcl.Build 1.0.14。安装失败。回滚...安装封装:具有相同键的项已被添加。在行:1字符:1 
+安装封装Microsoft.Bcl.Build
+ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+ CategoryInfo:NotSpecified:(:) [安装封装],ArgumentException的
+ FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPac kageCommand PM> $错误[0] .exception.stacktrace在System.ThrowHelper.ThrowArgumentException(ExceptionResource资源)在System.Collections.Generic.Dictionary`2.Insert(TKEY的关键,TValue值,布尔加)在System.Collections.ObjectModel.KeyedCollection` 2.AddKey在NuGet.CollectionExtensions(TKEY的关键,TItem项目)在System.Collections.ObjectModel.KeyedCollection`2.InsertItem(的Int32指数,TItem项目)在System.Collections.ObjectModel.Collection`1.Add(T项目)。的AddRange [T](ICollection`1收集,IEnumerable`1项目)在NuGet.NetPortableProfileTable.BuildPortableProfileCollection()在NuGet.NetPortableProfileTable.get_Profiles()在NuGet.NetPortableProfileTable.GetProfile(字符串PROFILENAME)在NuGet.NetPortableProfile.Parse(字符串profileValue布尔treatOptionalFrameworksAsSuppor tedFrameworks)在NuGet.VersionUtility.IsPortableLibraryCompatible(FrameworkName projectFrameworkName,框架原理orkName packageTargetFrameworkName)在NuGet.VersionUtility.IsCompatible(FrameworkName projectFrameworkName,FrameworkName包TargetFrameworkName)在NuGet.VersionUtility<> c__DisplayClass8`1< TryGetCompatibleItems> b__15(IGrouping`2 g)在System.Linq.Enumerable.WhereListIterator`1.MoveNext()在System.Linq.Buffer`1..ctor(IEnumerable`1源)在System.Linq.OrderedEnumerable`1<&GetEnumerator的GT ; d__0.MoveNext()在System.Linq.Enumerable.FirstOrDefault [TSource](IEnumerable`1源)在NuGet.VersionUtility.TryGetCompatibleItems [T](FrameworkName projectFramework,IEnumerable`1项目,IEnumerable`1&安培; compatibleItems)在NuGet.ProjectSystemExtensions.GetCompatibleItemsCore [T](IProjectSystem projectSystem,IEnum erable`1项目)在NuGet.ProjectManager.ExtractPackageFilesToProject(IPackage封装)在NuGet.ProjectManager.AddPackageReferenceToProject(IPackage封装)在NuGet.ProjectManager.Execute(PackageOperation操作)在NuGet.ProjectManager.Execute(IPackage包,IPackageOperationResolver解析器)在NuGet.ProjectManager.AddPackageReference(IPackage包,布尔ignoreDependencies,布尔在NuGet.VisualStudio.VsPackageManager EAN allowPrereleaseVersions)LT;> c__DisplayClass83< AddPackageReference> b__85( )在NuGet.VisualStudio.VsPackageManager.RunProjectAction(IProjectManager projectManager,行动对行动)在NuGet.VisualStudio.VsPackageManager.AddPackageReference(IProjectManager projectManager,IPA ckage包,布尔ignoreDependencies,布尔allowPrereleaseVersions)在NuGet.VisualStudio.VsPackageManager<> c__DisplayClass3 < InstallPackage> b__7()在NuGet.VisualStudio.VsPackageManager.RunSolutionAction(动作动作)在NuGet.VisualStudio.VsPackageManager.InstallPackage(IProjectManager projectManager,串p ackageId,SemanticVersion版本,布尔ignoreDependencies,布尔allowPrereleaseVersions,B oolean skipAssemblyReferences,ILogger记录仪)在NuGet.VisualStudio.VsPackageManager.InstallPackage(IProjectManager projectManager,串p ackageId,SemanticVersion版本,布尔ignoreDependencies,布尔allowPrereleaseVersions,我记录仪记录仪)在NuGet.PowerShell.Commands.InstallPackageCommand.InstallPackage(IVsPackageManager packageMan几岁)的NuGet.PowerShell .Commands.InstallPackageCommand.ProcessRecordCore()在NuGet.PowerShell.Commands.NuGetBaseCommand.ProcessRecord()PM>


解决方案

您堆栈跟踪告诉的故事,它是 NuGet.NetPortableProfileTable.BuildPortableProfileCollection()失败。简而言之,它遍历集合的PCL参考装配型材和遇到相同的配置文件超过一次。这是一个非常强烈暗示的内容,你的 C:\program文件(x86)的\reference assemblies\microsoft\framework\.netportable 目录损坏



有很多种可能的方式去修复受损:




  • 如果你有这个目录摆弄,像复制文件的一个积极的回忆,那么撤消你做了什么。

  • 要去做最安全的方法是卸载的所有的Visual Studio的版本> = VS2010。然后用手清理目录,删除仍然存在的任何杂散的文件。然后再重新安装VS

  • 的不那么安全的,但更快的方式是的改名的在C:\program文件(x86)的\reference组件目录并安装。我不能保证成功。

  • 您可以尝试找到自己复制和删除。目录结构是这样的:






 的C目录:\Program文件(x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0\Profile 

2014年5月14日下午1时01分< D​​IR> Profile1的
2014年5月14日下午1时01< D​​IR> Profile102
2014年5月14日下午1时01< D​​IR> Profile104
2014年5月14日下午1时01< D​​IR> Profile131
2014年5月14日下午1时01< D​​IR> Profile136
2014年5月14日下午1时01< D​​IR> Profile14
2014年5月14日下午1时01< D​​IR> Profile143
2014年5月14日下午1时01< D​​IR> Profile147
2014年5月14日下午1时01< D​​IR> Profile154
2014年5月14日下午1时01< D​​IR> Profile158
2014年5月14日下午1时01< D​​IR> Profile18
2014年5月14日下午1时01< D​​IR> Profile19
2014年5月14日下午1时01< D​​IR> PROFILE2
2014年5月14日下午1时01< D​​IR> Profile225
2014年5月14日下午1时01< D​​IR> Profile23
2014年5月14日下午1时01< D​​IR> Profile24
2014年5月14日下午1时01< D​​IR> Profile240
2014年5月14日下午1时01< D​​IR> Profile255
2014年5月14日下午1时01< D​​IR> Profile3
2014年5月14日下午1时01< D​​IR> Profile328
2014年5月14日下午1时01< D​​IR> Profile336
2014年5月14日下午1时01< D​​IR> Profile344
2014年5月14日下午1时01< D​​IR> Profile36
2014年5月14日下午1时01< D​​IR> Profile37
2014年5月14日下午1时01< D​​IR> Profile4
2014年5月14日下午1时01< D​​IR> Profile41
2014年5月14日下午1时01< D​​IR> Profile42
2014年5月14日下午1时01< D​​IR> Profile46
2014年5月14日下午1时01< D​​IR> Profile47
2014年5月14日下午1时01< D​​IR> Profile5
2014年5月14日下午1时01< D​​IR> Profile6
2014年5月14日下午1时01< D​​IR> Profile88
2014年5月14日下午1时01< D​​IR> Profile92
2014年5月14日下午1时01< D​​IR> Profile95
2014年5月14日下午1时01< D​​IR> Profile96

C目录:\Program文件(x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile

2014年5月14日12:59< D​​IR> 。
2014年5月14日12:59< D​​IR> ..
2014年5月14日下午1时01< D​​IR> Profile111
2014年5月14日下午1时01< D​​IR> Profile259
2014年5月14日下午1时01< D​​IR> Profile49
2014年5月14日下午1时01< D​​IR> Profile7
2014年5月14日下午1时01< D​​IR> Profile78

C目录:\Program文件(x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.6\Profile

2014年5月14日下午12时59分和LT; D​​IR> 。
2014年5月14日12:59< D​​IR> ..
2014年5月14日下午1时01< D​​IR> Profile151
2014年5月14日下午1时01< D​​IR> Profile157
2014年5月14日下午1时01< D​​IR> Profile31
2014年5月14日下午1时01< D​​IR> Profile32
2014年5月14日下午1时01< D​​IR> Profile44
2014年5月14日下午1时01< D​​IR> Profile84


i am trying to install Microsoft.Bcl.Build 1.0.14

nuget returns

Installing 'Microsoft.Bcl.Build 1.0.14'. Successfully installed 'Microsoft.Bcl.Build 1.0.14'. Adding 'Microsoft.Bcl.Build 1.0.14' to LeadTracker.Calendar. Uninstalling 'Microsoft.Bcl.Build 1.0.14'. Successfully uninstalled 'Microsoft.Bcl.Build 1.0.14'. Install failed. Rolling back... An item with the same key has already been added.

This also happens with json.net and other packages.

I can add nancy and topshelf but not json.net and bcl.

I have tried it in VS2012 and 2013. I have also tried uninstalling nuget and reinstalling. I have also tried adding the nuget to an empty class library and an empty console app. The same error is always returned.

This also happens with json.net and other packages.

I have also tried with no packages file

Any ideas most appreciated.

Here is the command and stacktrace

PM> Install-Package Microsoft.Bcl.Build Installing 'Microsoft.Bcl.Build 1.0.14'. You are downloading Microsoft.Bcl.Build from Microsoft, the license agreement to which is available at http://go.microsoft.com/fwlink/?LinkId=329770. Check the package for additional dependencies, which may come with their own license agreement(s). Your use of the package and dependencies constitutes your acceptance of their license agreements. If you do not accept the license agreement(s), then delete the relevant components from your device. Successfully installed 'Microsoft.Bcl.Build 1.0.14'. Adding 'Microsoft.Bcl.Build 1.0.14' to GoogleCalendarIntegration. Uninstalling 'Microsoft.Bcl.Build 1.0.14'. Successfully uninstalled 'Microsoft.Bcl.Build 1.0.14'. Install failed. Rolling back... Install-Package : An item with the same key has already been added. At line:1 char:1
+ Install-Package Microsoft.Bcl.Build
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], ArgumentException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPac     kageCommand   PM> $error[0].exception.stacktrace    at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)  at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)    at System.Collections.ObjectModel.KeyedCollection`2.AddKey(TKey key, TItem item)    at System.Collections.ObjectModel.KeyedCollection`2.InsertItem(Int32 index, TItem item)    at System.Collections.ObjectModel.Collection`1.Add(T item)    at NuGet.CollectionExtensions.AddRange[T](ICollection`1 collection, IEnumerable`1 items)    at NuGet.NetPortableProfileTable.BuildPortableProfileCollection()    at NuGet.NetPortableProfileTable.get_Profiles()    at NuGet.NetPortableProfileTable.GetProfile(String profileName)    at NuGet.NetPortableProfile.Parse(String profileValue, Boolean treatOptionalFrameworksAsSuppor tedFrameworks)    at NuGet.VersionUtility.IsPortableLibraryCompatible(FrameworkName projectFrameworkName, Framew orkName packageTargetFrameworkName)    at NuGet.VersionUtility.IsCompatible(FrameworkName projectFrameworkName, FrameworkName package TargetFrameworkName)    at NuGet.VersionUtility.<>c__DisplayClass8`1.<TryGetCompatibleItems>b__15(IGrouping`2 g)    at System.Linq.Enumerable.WhereListIterator`1.MoveNext()    at System.Linq.Buffer`1..ctor(IEnumerable`1 source)    at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)   at NuGet.VersionUtility.TryGetCompatibleItems[T](FrameworkName projectFramework, IEnumerable`1  items, IEnumerable`1& compatibleItems)    at NuGet.ProjectSystemExtensions.GetCompatibleItemsCore[T](IProjectSystem projectSystem, IEnum erable`1 items)    at NuGet.ProjectManager.ExtractPackageFilesToProject(IPackage package)    at NuGet.ProjectManager.AddPackageReferenceToProject(IPackage package) at NuGet.ProjectManager.Execute(PackageOperation operation)    at NuGet.ProjectManager.Execute(IPackage package, IPackageOperationResolver resolver)    at NuGet.ProjectManager.AddPackageReference(IPackage package, Boolean ignoreDependencies, Bool ean allowPrereleaseVersions)    at NuGet.VisualStudio.VsPackageManager.<>c__DisplayClass83.<AddPackageReference>b__85() at NuGet.VisualStudio.VsPackageManager.RunProjectAction(IProjectManager projectManager, Action  action)    at NuGet.VisualStudio.VsPackageManager.AddPackageReference(IProjectManager projectManager, IPa ckage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)    at NuGet.VisualStudio.VsPackageManager.<>c__DisplayClass3.<InstallPackage>b__7() at NuGet.VisualStudio.VsPackageManager.RunSolutionAction(Action action)    at NuGet.VisualStudio.VsPackageManager.InstallPackage(IProjectManager projectManager, String p ackageId, SemanticVersion version, Boolean ignoreDependencies, Boolean allowPrereleaseVersions, B oolean skipAssemblyReferences, ILogger logger)    at NuGet.VisualStudio.VsPackageManager.InstallPackage(IProjectManager projectManager, String p ackageId, SemanticVersion version, Boolean ignoreDependencies, Boolean allowPrereleaseVersions, I Logger logger)  at NuGet.PowerShell.Commands.InstallPackageCommand.InstallPackage(IVsPackageManager packageMan ager)    at NuGet.PowerShell.Commands.InstallPackageCommand.ProcessRecordCore()    at NuGet.PowerShell.Commands.NuGetBaseCommand.ProcessRecord() PM>
解决方案

Your stack-trace tells the tale, it is NuGet.NetPortableProfileTable.BuildPortableProfileCollection() that fails. In a nutshell, it iterates the set of PCL reference assembly profiles and encounters the same profile more than once. This is a very strong hint that the content of your c:\program files (x86)\reference assemblies\microsoft\framework\.netportable directory is corrupted.

There are many possible ways to go about fixing the damage:

  • If you have an active recollection of tinkering with this directory, like copying files, then undo what you did.
  • Safest way to go about it is to uninstall all Visual Studio versions >= VS2010. Then clean up the directory by hand, deleting any stray files that are still present. Then reinstalling VS again.
  • The not-so-safe but speedier way is to rename the c:\program files (x86)\reference assemblies directory and install the multi-targeting pack. I can't promise success.
  • You can try to find the duplicate yourself and remove it. The directory structure looks like this:

 Directory of C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0\Profile

05/14/2014  01:01 PM    <DIR>          Profile1
05/14/2014  01:01 PM    <DIR>          Profile102
05/14/2014  01:01 PM    <DIR>          Profile104
05/14/2014  01:01 PM    <DIR>          Profile131
05/14/2014  01:01 PM    <DIR>          Profile136
05/14/2014  01:01 PM    <DIR>          Profile14
05/14/2014  01:01 PM    <DIR>          Profile143
05/14/2014  01:01 PM    <DIR>          Profile147
05/14/2014  01:01 PM    <DIR>          Profile154
05/14/2014  01:01 PM    <DIR>          Profile158
05/14/2014  01:01 PM    <DIR>          Profile18
05/14/2014  01:01 PM    <DIR>          Profile19
05/14/2014  01:01 PM    <DIR>          Profile2
05/14/2014  01:01 PM    <DIR>          Profile225
05/14/2014  01:01 PM    <DIR>          Profile23
05/14/2014  01:01 PM    <DIR>          Profile24
05/14/2014  01:01 PM    <DIR>          Profile240
05/14/2014  01:01 PM    <DIR>          Profile255
05/14/2014  01:01 PM    <DIR>          Profile3
05/14/2014  01:01 PM    <DIR>          Profile328
05/14/2014  01:01 PM    <DIR>          Profile336
05/14/2014  01:01 PM    <DIR>          Profile344
05/14/2014  01:01 PM    <DIR>          Profile36
05/14/2014  01:01 PM    <DIR>          Profile37
05/14/2014  01:01 PM    <DIR>          Profile4
05/14/2014  01:01 PM    <DIR>          Profile41
05/14/2014  01:01 PM    <DIR>          Profile42
05/14/2014  01:01 PM    <DIR>          Profile46
05/14/2014  01:01 PM    <DIR>          Profile47
05/14/2014  01:01 PM    <DIR>          Profile5
05/14/2014  01:01 PM    <DIR>          Profile6
05/14/2014  01:01 PM    <DIR>          Profile88
05/14/2014  01:01 PM    <DIR>          Profile92
05/14/2014  01:01 PM    <DIR>          Profile95
05/14/2014  01:01 PM    <DIR>          Profile96

 Directory of C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile

05/14/2014  12:59 PM    <DIR>          .
05/14/2014  12:59 PM    <DIR>          ..
05/14/2014  01:01 PM    <DIR>          Profile111
05/14/2014  01:01 PM    <DIR>          Profile259
05/14/2014  01:01 PM    <DIR>          Profile49
05/14/2014  01:01 PM    <DIR>          Profile7
05/14/2014  01:01 PM    <DIR>          Profile78

 Directory of C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.6\Profile

05/14/2014  12:59 PM    <DIR>          .
05/14/2014  12:59 PM    <DIR>          ..
05/14/2014  01:01 PM    <DIR>          Profile151
05/14/2014  01:01 PM    <DIR>          Profile157
05/14/2014  01:01 PM    <DIR>          Profile31
05/14/2014  01:01 PM    <DIR>          Profile32
05/14/2014  01:01 PM    <DIR>          Profile44
05/14/2014  01:01 PM    <DIR>          Profile84

这篇关于安装的NuGet包&QUOT;相同的密钥已被添加&QUOT。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 03:13