'Microsoft.Rest.ClientRuntime' 已经为 'Newtonsoft.Json' 定义了依赖项

'Microsoft.Rest.ClientRuntime' already has a dependency defined for 'Newtonsoft.Json'

正在尝试通过 Nuget 将包安装到 VS2012 中,但遇到以下错误。

PM> install-package microsoft.rest.clientruntime
Attempting to resolve dependency 'Newtonsoft.Json (≥ 6.0.8)'.
Install-Package : 'Microsoft.Rest.ClientRuntime' already has a dependency defined for 'Newtonsoft.Json'.
At line:1 char:16
+ install-package <<<<  microsoft.rest.clientruntime
    + CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

很多地方都提到了这个问题,包括here,但无一例外地建议更新到最新版本的 Nuget。

我是运行最新版本,还没能解决这个问题。 Nuget 版本:2.8.60318.667

我还尝试创建一个全新的解决方案并安装相同的包并获得相同的结果,因此它肯定与 Nuget 有关,而不是项目。

问题是您使用的NuGet版本太旧。您至少需要 NuGet 版本 2.12。

Visual Studio 2012 不支持最新 Microsoft.Rest.ClientRuntime 所需的 NuGet 2.12,因为它具有针对 .NETStandard 的依赖组,旧版本的 NuGet 并不知道这些依赖组并导致 already has a dependency defined for错误。

因此您需要升级 Visual Studio 版本,或者尝试使用旧版本的 Microsoft.Rest.ClientRuntime NuGet 包,或者不使用 NuGet 并直接下载 Microsoft.Rest.ClientRuntime NuGet 包从 nuget.org 中提取所需的程序集。

我最近在 Visual Studio Team Services 中创建私有 nuget 提要时遇到了这个问题。

事实证明,在删除 Nuget 包后它没有正确更新 packages.config 并且有一个孤立的引用不属于 .csproj 文件。

删除引用成功了!

我在 VSTS 中使用 NGet Package 步骤并在此创建 PowerShell 步骤时遇到了这个问题 link 修复了它:

https://github.com/Microsoft/vsts-tasks/issues/3756#issuecomment-288185011