NuGet: 'X' đã có một phụ thuộc được xác định cho 'Y'


94

Tôi gặp lỗi sau trong NuGet khi cố gắng cài đặt gói Microsoft.AspNet.Server.IIS

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'.

Làm thế nào để giải quyết nó?

CẬP NHẬT: Ngoài ra, tôi nhận được những điều sau:

Attempting to resolve dependency 'Microsoft.Framework.DependencyInjection (≥ 1.0.0-alpha4-10326)'.
'Microsoft.Framework.DependencyInjection' already has a dependency defined for 'Microsoft.Framework.ConfigurationModel'.

Bạn đã thử cập nhật Nuget mới nhất chưa? Xem stackoverflow.com/questions/23286522/…
jrummell

2
@jrummell Tôi có: 2.8.50313.46, hiện tại không có bản cập nhật nào trong VS 2013.
TN.

Câu trả lời:


151

Điều này đã được giải quyết bằng cách cài đặt Trình quản lý gói NuGet mới nhất:

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

Đừng quên khởi động lại Visual Studio.


5
Tôi đã sử dụng Nuget "NuGet Package Manager 2.8.60318.667" mới nhất nhưng tôi nhận được "Install-Package: 'System.Collections' đã có một phụ thuộc được xác định cho 'Microsoft.NETCore.Platforms'". khi cố gắng cài đặt "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre"
Gopi

2
Tôi gặp vấn đề tương tự như @TechJerk, trong tình huống của tôi, tôi đang cố gắng đưa một dự án vào gói nuget. Tôi có thể làm điều đó cục bộ nhưng không phải trên máy chủ bản dựng. Trên máy chủ xây dựng, tôi nhận được 'System.Collections' đã có một phụ thuộc được xác định cho 'Microsoft.NETCore.Platforms'. Cập nhật NuGet không có tác dụng.
user3841460

Điều này làm việc cho tôi. Trong trường hợp của tôi, tôi đang cố gắng cài đặt SQLite-net PCL (Xamarin). Visual Studio là 2013 Ultimate.
ramires.cabral

2
Tôi đang gặp vấn đề tương tự như @TechJerk nhưng với 'System.Net.Http' already has a dependency defined for 'System.IO'- Tôi cố gắng cài đặt lại & nâng cấp NuGet không có hiệu lực thi hành (Tôi hiện đang sử dụng phiên bản 2.8 ... và Visual Studio 2012)
mò mẫm Philosopher

2
Nếu bạn gặp lỗi này trong TeamCity thì bạn cũng có thể cần cập nhật cài đặt bước xây dựng để sử dụng phiên bản nuget mới nhất hiện có.
Steve Greatrex

74

Tôi đã khắc phục sự cố tương tự trong giải pháp của mình bằng cách:

  1. Mở dấu nhắc lệnh
  2. Điều hướng đến thư mục .nuget trong giải pháp của tôi
  3. Đang chạy nuget update -self

Điều này đã nâng cấp bản sao của NuGet.exeđiều đó trong giải pháp của tôi từ 2.8.0lên 3.4.4, đã sửa lỗi 'X' đã có một phần phụ thuộc được xác định cho lỗi 'Y' ngăn nó tự động tải xuống SSH.NET trước khi xây dựng.

(Nếu giải pháp của bạn không có bản sao của NuGet.exenó - và nó có thể không - thì bạn nên thử giải pháp trong câu trả lời của TN để thay thế)


Đây là cái đã sửa nó cho tôi, nhưng thay vào đó tôi đã chạy nó trên máy chủ bản dựng. Các bản ghi cho bản dựng không thành công chỉ ra đường dẫn đến NuGet.exe được đề cập.
InteXX

20

Tôi đã thử cập nhật, nhưng nó không hoạt động với tôi. Đã giúp:

  1. Gỡ cài đặt NuGet => Công cụ => Tiện ích mở rộng và cập nhật => Đã cài đặt
  2. Cài đặt NuGet
  3. Tải lại Visual Studio

1
Điều này đã làm điều đó cho tôi.
Naner

6

Tôi gặp phải lỗi này trên phiên bản Visual Studio 2010. Do cấu hình dự án, tôi không thể cập nhật phiên bản này lên mới hơn. Do đó, bản cập nhật của NuGet được tư vấn ở trên không khắc phục được sự cố cho tôi.

Nguyên nhân chính gây ra lỗi trong trường hợp này và các trường hợp tương tự là do các gói phụ thuộc bạn cố gắng cài đặt, không tương thích với phiên bản .NET có sẵn trong dự án của bạn.

Giải pháp chung không bắt buộc phải cập nhật Visual Studio hoặc .NET mà là cài đặt các phiên bản NuGet cũ hơn của cùng một gói tương thích với hệ thống của bạn.

Không thể biết chắc chắn, phiên bản nào trước đó sẽ hoạt động. Trong trường hợp của tôi, lệnh này đã cài đặt gói mà không có bất kỳ bản cập nhật NuGet nào.

Install-Package X -Version [compatible version number]

5

Tôi gặp sự cố này trên máy chủ xây dựng TeamCity của chúng tôi. Tôi đã thử cập nhật NuGet trên máy chủ xây dựng (thông qua TC) nhưng điều đó không hoạt động. Cuối cùng tôi đã giải quyết được sự cố bằng cách thay đổi "Chế độ cập nhật" của bước xây dựng Nuget Installer từ tệp giải pháp sang packages.config.


Cảm ơn bạn về thông tin. Tôi đã gặp vấn đề tương tự + cập nhật NuGet lên 4.0.0 / không phải là mặc định và thay đổi NuGet thành v4 cho một cấu hình xây dựng không thành công này đã thực hiện công việc!
Tiến sĩ Andrew Burnett-Thompson

Nhưng làm thế nào để bạn làm điều đó?
ympostor

3

Tôi đã gặp sự cố 'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'trên máy chủ xây dựng TeamCity. Tôi đã thay đổi " Cập nhật Chế độ " của việc xây dựng bước NuGet Installer từ giải pháp tập tin để packages.configNuGet.exe lên phiên bản mới nhất (tôi đã 3.5.0) và nó làm việc !!


làm thế nào để làm điều đó??
ympostor

Tôi đang gặp vấn đề CHÍNH XÁC này.
Jess


Đi tới Cài đặt cấu hình xây dựng, trong Các bước xây dựng, Thêm một bước cho NuGet Installer làm loại Runner. thay đổi "Cập nhật Chế độ" của việc xây dựng bước NuGet Installer từ tập tin giải pháp cho packages.config và NuGet.exe lên phiên bản mới nhất
szc0025

2
  1. Truy cập liên kết https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Tìm kiếm các gói NuGet của bạn
  3. Xem tất cả phiên bản của các gói liên quan
  4. Cài đặt phiên bản gói thấp hơn

Đây thực sự là một giải pháp tốt trong trường hợp phiên bản studio trực quan của bạn quá thấp. Trong trường hợp của tôi, tôi phải làm việc với VS2012, không hỗ trợ phiên bản NuGet mới nhất. Điều đó tự động có nghĩa là tôi không thể luôn tải xuống các gói mới nhất thông qua cửa sổ Quản lý Gói NuGet.
Mixxiphoid

1

Trong trường hợp của tôi, tôi phải xóa tệp NuGet.exe trong thư mục Dự án /.nuget và xây dựng lại dự án.

Tôi cũng có trong NuGet.targets, DownloadNuGetExe được đánh dấu là true:

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

Hy vọng nó sẽ hữu ích.


0

Giải pháp duy nhất phù hợp với tôi là gỡ cài đặt hoàn toàn nuget khỏi Visual Studio 2013 và sau đó cài đặt lại nó với khởi động lại bắt buộc của VS ở giữa.


0
  1. Đi tới Công cụ.
  2. Tiện ích mở rộng và Cập nhật.
  3. Cập nhật Nuget và bất kỳ tính năng quan trọng nào khác.
  4. Khởi động lại.

Làm xong.


0

Trong một dự án sử dụng so với năm 2010, tôi chỉ có thể giải quyết vấn đề bằng cách cài đặt phiên bản cũ hơn của gói mà tôi cần thông qua Bảng điều khiển Trình quản lý Gói.

Lệnh này đã hoạt động:

PM> Install-Package EPPlus -Version 4.5.3.1

Lệnh này không hoạt động:

PM> Install-Package EPPlus -Version 4.5.3.2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.