NuGet:'X'已经为'Y'定义了依赖关系

问题描述 投票:82回答:9

我在尝试安装包Microsoft.AspNet.Server.IIS时在NuGet中收到以下错误

Attempting to resolve dependency 'Microsoft.AspNet.Loader.IIS.Interop (≥ 1.0.0-alpha4-10330)'.
Attempting to resolve dependency 'Microsoft.AspNet.Loader.IIS (≥ 1.0.0-alpha4-10330)'.
'Microsoft.AspNet.Loader.IIS' already has a dependency defined for 'Microsoft.AspNet.FeatureModel'.

怎么解决?

更新:我还得到以下内容:

Attempting to resolve dependency 'Microsoft.Framework.DependencyInjection (≥ 1.0.0-alpha4-10326)'.
'Microsoft.Framework.DependencyInjection' already has a dependency defined for 'Microsoft.Framework.ConfigurationModel'.
asp.net iis nuget
9个回答
135
投票

通过安装最新的NuGet Package Manager解决了这个问题:

https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca

不要忘记重新启动VisualStudio。


63
投票

我在我的解决方案中解决了类似的问题:

  1. 打开命令提示符
  2. 导航到我的解决方案中的.nuget文件夹
  3. 运行nuget update -self

这将我的解决方案中的NuGet.exe副本从2.8.0升级到3.4.4,修复了'X'已经有一个为'Y'错误定义的依赖关系,它阻止它在构建之前自动下载SSH.NET 。

(如果您的解决方案中没有NuGet.exe的副本 - 而且可能没有 - 那么您应该尝试TN的答案中的解决方案)


18
投票

我尝试了更新,但它对我不起作用。帮助:

  1. uninstall nuget =>工具>扩展和更新>已安装
  2. 安装nuget
  3. 重新加载VS.

5
投票

我在TeamCity构建服务器上遇到了这个问题。我尝试在构建服务器上更新NuGet(通过TC),但这不起作用。我最终通过将Nuget Installer构建步骤的“更新模式”从解决方案文件更改为packages.config来解决问题。


3
投票

我在TeamCity构建服务器上遇到问题'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'。我将Nuget Installer构建步骤的“更新模式”从解决方案文件更改为packages.config和NuGet.exe到最新版本(我有3.5.0)并且它工作了!


2
投票
  1. 转到链接https://www.nuget.org/packages/ClosedXML/0.64.0
  2. 搜索你的nuget包
  3. 查看相关软件包的所有版本
  4. 安装较低版本的软件包

2
投票

我在过时版本的Visual Studio 2010上遇到此错误。由于项目配置,我无法将此版本更新为更新版本。因此,上面提到的NuGet的更新并没有为我解决问题。

此类和类似情况中出错的根本原因在于您尝试安装的软件包的依赖性,这与您项目中可用的.NET版本不兼容。

通用解决方案不是Visual Studio或.NET的强制更新,而是安装与您的系统兼容的相同软件包的旧NuGet版本。

无法确定哪些早期版本可以正常工作。就我而言,此命令安装了包,没有任何NuGet更新。

Install-Package X -Version [compatible version number]

1
投票

在我的情况下,我不得不删除项目文件夹/ .nuget中的文件NuGet.exe并重建项目。

我还在NuGet.targets中将DownloadNuGetExe标记为true:

<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe>

希望它有所帮助。


0
投票

对我有用的唯一解决方案是从Visual Studio 2013中完全卸载nuget,然后再次安装它,同时重新启动VS。

© www.soinside.com 2019 - 2024. All rights reserved.