NuGet: 'X' มีการอ้างอิงที่กำหนดไว้สำหรับ 'Y' แล้ว


94

ฉันได้รับข้อผิดพลาดต่อไปนี้ใน NuGet ขณะพยายามติดตั้งแพ็คเกจ 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'.

จะแก้ไขได้อย่างไร?

อัปเดต: นอกจากนี้ฉันได้รับสิ่งต่อไปนี้:

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

คุณลองอัปเดต Nuget เป็นรุ่นล่าสุดแล้วหรือยัง? ดูstackoverflow.com/questions/23286522/…
jrummell

2
@jrummell ฉันมี: 2.8.50313.46 ไม่มีการอัปเดตใน VS 2013 ในขณะนี้
TN.

คำตอบ:


151

สิ่งนี้แก้ไขได้โดยการติดตั้ง NuGet Package Manager ล่าสุด:

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

อย่าลืมรีสตาร์ท Visual Studio


5
ฉันใช้ Nuget "NuGet Package Manager 2.8.60318.667" ล่าสุด แต่ฉันได้รับ "Install-Package: 'System.Collections' มีการอ้างอิงที่กำหนดไว้สำหรับ 'Microsoft.NETCore.Platforms' แล้ว เมื่อพยายามติดตั้ง "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre"
Gopi

2
ฉันมีปัญหาเดียวกันกับ @TechJerk ในสถานการณ์ของฉันฉันพยายามใส่โครงการลงในแพ็คเกจ nuget ฉันสามารถทำได้ในเครื่อง แต่ทำไม่ได้บนเซิร์ฟเวอร์สร้าง บนเซิร์ฟเวอร์สร้างฉันได้รับ 'System.Collections' มีการอ้างอิงที่กำหนดไว้สำหรับ 'Microsoft.NETCore.Platforms' แล้ว การอัปเดต NuGet ไม่มีผลใด ๆ
user3841460

สิ่งนี้ใช้ได้กับฉัน ในกรณีของฉันฉันพยายามติดตั้ง SQLite-net PCL (Xamarin) Visual Studio คือ 2013 Ultimate
ramires.cabral

2
ฉันมีปัญหาเดียวกันกับ @TechJerk แต่ด้วย'System.Net.Http' already has a dependency defined for 'System.IO'- ฉันลองติดตั้งและอัปเกรด NuGet ใหม่โดยไม่มีผลใด ๆ (ขณะนี้ฉันใช้เวอร์ชัน 2.8 ... และ Visual Studio 2012)
Blundering Philosopher

2
หากคุณได้รับข้อผิดพลาดนี้ใน TeamCity คุณอาจต้องอัปเดตการตั้งค่าขั้นตอนการสร้างเพื่อใช้รุ่นล่าสุดที่มีอยู่
Steve Greatrex

74

ฉันแก้ไขปัญหาที่คล้ายกันในโซลูชันของฉันโดย:

  1. เปิดพรอมต์คำสั่ง
  2. ไปที่โฟลเดอร์. nuget ในโซลูชันของฉัน
  3. วิ่ง nuget update -self

สิ่งนี้อัปเกรดสำเนาNuGet.exeที่อยู่ในโซลูชันของฉันจาก2.8.0เป็น3.4.4ซึ่งแก้ไข 'X' แล้วมีการอ้างอิงที่กำหนดไว้สำหรับข้อผิดพลาด 'Y' ซึ่งหยุดไม่ให้ดาวน์โหลด SSH.NET โดยอัตโนมัติก่อนสร้าง

(หากโซลูชันของคุณไม่มีสำเนา NuGet.exe - และอาจไม่มี - คุณควรลองใช้วิธีแก้ปัญหาในคำตอบของ TN แทน)


นี่คือสิ่งที่แก้ไขให้ฉัน แต่ฉันรันบนเซิร์ฟเวอร์บิลด์แทน บันทึกสำหรับโครงสร้างที่ล้มเหลวระบุเส้นทางไปยัง NuGet.exe ที่เป็นปัญหา
InteXX

20

ฉันลองอัปเดตแล้ว แต่มันไม่ได้ผลสำหรับฉัน ช่วย:

  1. ถอนการติดตั้ง NuGet => Tools => Extensions and update => Installed
  2. ติดตั้ง NuGet
  3. โหลด Visual Studio ใหม่

1
สิ่งนี้ทำเพื่อฉัน
Naner

7

ฉันพบข้อผิดพลาดนี้ใน Visual Studio 2010 เวอร์ชันที่ล้าสมัยเนื่องจากการกำหนดค่าโครงการฉันไม่สามารถอัปเดตเวอร์ชันนี้ให้เป็นเวอร์ชันที่ใหม่กว่าได้ ดังนั้นการอัปเดต NuGet ที่แนะนำข้างต้นจึงไม่ได้แก้ไขปัญหาให้ฉัน

สาเหตุหลักของข้อผิดพลาดในสถานการณ์นี้และสถานการณ์ที่คล้ายคลึงกันนี้อยู่ในการอ้างอิงของแพ็กเกจที่คุณพยายามติดตั้งซึ่งเข้ากันไม่ได้กับเวอร์ชัน.

โซลูชันสากลไม่ใช่การอัปเดตบังคับของ Visual Studio หรือ. NET แต่เป็นการติดตั้ง NuGet เวอร์ชันเก่ากว่าของแพ็คเกจเดียวกันที่เข้ากันได้กับระบบของคุณ

ยังไม่สามารถบอกได้อย่างแน่นอนว่าเวอร์ชันก่อนหน้าใดจะใช้งานได้ ในกรณีของฉันคำสั่งนี้ติดตั้งแพ็คเกจโดยไม่มีการอัปเดต NuGet

Install-Package X -Version [compatible version number]

5

ฉันได้รับปัญหานี้ในเซิร์ฟเวอร์การสร้าง TeamCity ของเรา ฉันพยายามอัปเดต NuGet บนเซิร์ฟเวอร์บิลด์ (ผ่าน TC) แต่ไม่ได้ผล ในที่สุดฉันก็แก้ไขปัญหาโดยเปลี่ยน "โหมดอัปเดต" ของขั้นตอนการสร้าง Nuget Installer จากไฟล์โซลูชันเป็นไฟล์packages.config.


ขอบคุณสำหรับข้อมูล. ฉันมีปัญหาเดียวกัน + อัปเดต NuGet เป็น 4.0.0 / ไม่ใช่เป็นค่าเริ่มต้นและเปลี่ยน NuGet เป็น v4 สำหรับการกำหนดค่าการสร้างตัวนี้ที่ทำงานล้มเหลว!
Dr. Andrew Burnett-Thompson

แต่คุณจะทำอย่างไร?
ympostor

3

ฉันได้รับปัญหา'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'บนเซิร์ฟเวอร์การสร้าง TeamCity ผมเปลี่ยน " โหมดการปรับปรุง " ของ Nuget Installer สร้างขั้นตอนจากการแก้ปัญหาไฟล์packages.configและNuGet.exeเป็นรุ่นล่าสุด (ฉันมี 3.5.0) และการทำงาน !!


ทำยังไง ??
ympostor

ฉันได้รับปัญหาเดียวกันนี้อย่างแน่นอน
Jess

ดูเพิ่มเติมที่: stackoverflow.com/questions/44532170/…
Jess

ไปที่ Build Configuration Settings ภายใต้ Build Steps เพิ่มขั้นตอนสำหรับ NuGet Installer เป็นประเภท Runner เปลี่ยน "โหมดอัปเดต" ของขั้นตอนการสร้าง Nuget Installer จากไฟล์โซลูชันเป็น package.config และ NuGet.exe เป็นเวอร์ชันล่าสุด
szc0025

2
  1. ไปที่ลิงค์https://www.nuget.org/packages/ClosedXML/0.64.0
  2. ค้นหาแพ็คเกจ NuGet ของคุณ
  3. ดูเวอร์ชันทั้งหมดของแพ็คเกจที่เกี่ยวข้อง
  4. ติดตั้งแพ็คเกจเวอร์ชันที่ต่ำกว่า

นี่เป็นวิธีแก้ปัญหาที่ดีในกรณีที่เวอร์ชัน Visual Studio ของคุณต่ำเกินไป ในกรณีของฉันฉันต้องทำงานกับ VS2012 ซึ่งไม่รองรับ NuGet เวอร์ชันใหม่ล่าสุด นั่นหมายความว่าฉันไม่สามารถดาวน์โหลดแพ็คเกจใหม่ล่าสุดผ่านหน้าต่าง Manage NuGet Packages ได้โดยอัตโนมัติ
Mixxiphoid

1

ในกรณีของฉันฉันต้องลบไฟล์ NuGet.exe ในโฟลเดอร์ Project /.nuget และสร้างโครงการใหม่

ฉันมีใน NuGet เช่นกันกำหนดเป้าหมาย DownloadNuGetExe ที่ทำเครื่องหมายว่าเป็นจริง:

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

หวังว่าจะช่วยได้


0

ทางออกเดียวที่ใช้ได้ผลสำหรับฉันคือการถอนการติดตั้ง nuget อย่างสมบูรณ์จาก Visual Studio 2013 จากนั้นติดตั้งอีกครั้งด้วยการรีสตาร์ท VS บังคับในระหว่างนั้น


0
  1. ไปที่เครื่องมือ
  2. ส่วนขยายและการอัปเดต
  3. อัปเดต Nuget และคุณสมบัติที่สำคัญอื่น ๆ
  4. เริ่มต้นใหม่.

เสร็จแล้ว


0

ในโปรเจ็กต์ที่ใช้ vs 2010 ฉันสามารถแก้ปัญหาได้โดยการติดตั้งแพ็คเกจเวอร์ชันเก่ากว่าที่ฉันต้องการผ่านคอนโซลตัวจัดการแพ็คเกจ

คำสั่งนี้ใช้งานได้:

PM> Install-Package EPPlus -Version 4.5.3.1

คำสั่งนี้ใช้ไม่ได้:

PM> Install-Package EPPlus -Version 4.5.3.2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.