NuGet: 'X' sudah memiliki dependensi yang ditentukan untuk 'Y'

94

Saya mendapatkan kesalahan berikut di NuGet ketika mencoba menginstal paket 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'.

Bagaimana cara mengatasinya?

UPDATE: Juga, saya mendapatkan yang berikut:

Attempting to resolve dependency 'Microsoft.Framework.DependencyInjection (≥ 1.0.0-alpha4-10326)'.
'Microsoft.Framework.DependencyInjection' already has a dependency defined for 'Microsoft.Framework.ConfigurationModel'.
TN.
sumber
Sudahkah Anda mencoba mengupdate Nuget ke yang terbaru? Lihat stackoverflow.com/questions/23286522/…
jrummell
2
@jrummell Saya punya: 2.8.50313.46, tidak ada update di VS 2013 saat ini.
TN.

Jawaban:

151

Ini diselesaikan dengan menginstal NuGet Package Manager terbaru:

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

Jangan lupa untuk memulai ulang Visual Studio.

TN.
sumber
5
Saya sudah memiliki Nuget terbaru "NuGet Package Manager 2.8.60318.667" tetapi saya mendapatkan "Install-Package: 'System.Collections' sudah memiliki dependensi yang ditentukan untuk 'Microsoft.NETCore.Platforms'". ketika mencoba untuk menginstal "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre"
Gopi
2
Saya memiliki masalah yang sama dengan @TechJerk, dalam situasi saya, saya mencoba memasukkan proyek ke dalam paket nuget. Saya bisa melakukannya secara lokal tetapi tidak di server build. Di server build, saya mendapatkan 'System.Collections' sudah memiliki ketergantungan yang ditentukan untuk 'Microsoft.NETCore.Platforms'. Memperbarui NuGet tidak berpengaruh.
pengguna3841460
Ini berhasil untuk saya. Dalam kasus saya, saya mencoba menginstal SQLite-net PCL (Xamarin). Visual Studio 2013 Ultimate.
ramires.cabral
2
Saya mengalami masalah yang sama dengan @TechJerk tetapi dengan 'System.Net.Http' already has a dependency defined for 'System.IO'- Saya mencoba menginstal ulang & meningkatkan NuGet tanpa efek (saat ini saya menggunakan versi 2.8 ... dan Visual Studio 2012)
Blundering Philosopher
2
Jika Anda mendapatkan kesalahan ini di TeamCity, Anda mungkin juga perlu memperbarui pengaturan langkah pembuatan untuk menggunakan versi nuget terbaru yang tersedia.
Steve Greatrex
74

Saya memperbaiki masalah serupa dalam solusi saya dengan:

  1. Membuka prompt perintah
  2. Menavigasi ke folder .nuget dalam solusi saya
  3. Lari nuget update -self

Ini meningkatkan salinan NuGet.exeyang ada dalam solusi saya dari 2.8.0menjadi 3.4.4, yang memperbaiki 'X' sudah memiliki ketergantungan yang ditentukan untuk kesalahan 'Y' yang menghentikannya mengunduh SSH.NET secara otomatis sebelum membangun.

(Jika solusi Anda tidak memiliki salinan NuGet.exedi dalamnya - dan mungkin tidak - maka Anda harus mencoba solusi dalam jawaban TN sebagai gantinya)

Robyn
sumber
Ini adalah salah satu yang memperbaikinya untuk saya, tetapi saya menjalankannya di server build sebagai gantinya. Log untuk build yang gagal menunjukkan jalur ke NuGet.exe yang dimaksud.
InteXX
20

Saya mencoba pembaruan, tetapi tidak berhasil untuk saya. Membantu:

  1. Hapus NuGet => Alat => Ekstensi dan perbarui => Terpasang
  2. Instal NuGet
  3. Muat ulang Visual Studio
HuckFin.7b
sumber
1
Ini berhasil untuk saya.
Naner
7

Saya menghadapi kesalahan ini pada versi Visual Studio 2010. Karena konfigurasi proyek saya tidak dapat memperbarui versi ini ke yang lebih baru. Oleh karena itu, pembaruan NuGet yang disarankan di atas tidak memperbaiki masalah saya.

Alasan utama untuk kesalahan dalam situasi ini dan yang serupa terletak pada ketergantungan paket yang Anda coba instal, yang tidak kompatibel dengan versi .NET yang tersedia di proyek Anda.

Solusi universal bukanlah pembaruan wajib dari Visual Studio atau .NET tetapi dalam penginstalan versi NuGet yang lebih lama dari paket yang sama yang kompatibel dengan sistem Anda.

Tidak mungkin untuk memastikan dengan pasti, versi mana yang lebih lama akan berfungsi. Dalam kasus saya, perintah ini menginstal paket tanpa pembaruan NuGet.

Install-Package X -Version [compatible version number]
Boris Zinchenko
sumber
5

Saya mendapatkan masalah ini di server build TeamCity kami. Saya mencoba memperbarui NuGet di server build (melalui TC) tetapi tidak berhasil. Saya akhirnya menyelesaikan masalah dengan mengubah "Mode Pembaruan" dari langkah build Penginstal Nuget dari file solusi ke packages.config.

Stewert
sumber
Terimakasih atas infonya. Saya memiliki masalah yang sama + memperbarui NuGet ke 4.0.0 / bukan sebagai default dan mengubah NuGet ke v4 untuk konfigurasi build yang satu ini yang gagal melakukan pekerjaan itu!
Dr. Andrew Burnett-Thompson
tapi bagaimana kamu melakukannya?
ympostor
3

Saya mendapatkan masalah 'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'di server build TeamCity. Saya mengubah " Mode Pembaruan " dari langkah pembuatan Nuget Installer dari file solusi ke packages.config dan NuGet.exe ke versi terbaru (saya punya 3.5.0) dan berhasil !!

szc0025.dll
sumber
bagaimana cara melakukannya??
ympostor
Saya mendapatkan masalah yang sama PERSIS.
Jess
Pergi ke Build Configuration Settings, di bawah Build Steps, Tambahkan langkah untuk NuGet Installer sebagai tipe Runner. ubah "Update Mode" langkah build Penginstal Nuget dari file solusi ke packages.config dan NuGet.exe ke versi terbaru
szc0025
2
  1. Buka tautan https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Cari paket NuGet Anda
  3. Lihat semua versi paket terkait
  4. Instal versi paket yang lebih rendah
Rahul
sumber
Ini sebenarnya adalah solusi yang bagus jika versi studio visual Anda terlalu rendah. Dalam kasus saya, saya harus menggunakan VS2012, yang tidak mendukung versi terbaru NuGet. Itu secara otomatis berarti saya tidak selalu dapat mengunduh paket terbaru melalui jendela Kelola Paket NuGet.
Mixxiphoid
1

Dalam kasus saya, saya harus menghapus file NuGet.exe di folder Proyek /.nuget dan membangun kembali proyek tersebut.

Saya juga memiliki di NuGet.t target DownloadNuGetExe ditandai sebagai benar:

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

Semoga membantu.

Hernán Dario Velásquez García
sumber
0

Satu-satunya solusi yang berhasil untuk saya adalah menghapus nuget sepenuhnya dari Visual Studio 2013 dan kemudian menginstalnya lagi dengan restart wajib dari VS di antaranya.

pengguna7013486
sumber
0
  1. Pergi ke Tools.
  2. Ekstensi dan Pembaruan.
  3. Perbarui Nuget dan fitur penting lainnya.
  4. Mengulang kembali.

Selesai.

Anshul Rawat
sumber
0

Dalam proyek yang menggunakan vs 2010, saya hanya dapat menyelesaikan masalah dengan menginstal versi lama dari paket yang saya butuhkan melalui Package Manager Console.

Perintah ini berhasil:

PM> Install-Package EPPlus -Version 4.5.3.1

Perintah ini tidak berhasil:

PM> Install-Package EPPlus -Version 4.5.3.2
Genivan
sumber