แหล่งที่มาไม่สามารถเข้าถึงได้เมื่อใช้คอนโซล NuGet Package Manager


153

เรากำลังย้ายการจัดการแพ็กเกจของเราจากการอัปเดตไฟล์เป็น NuGet ด้วยตนเอง ฉันกำลังพยายามติดตั้งแพคเกจเวอร์ชันเก่าเพื่อให้ตรงกับที่เรามีอยู่แล้วในการควบคุมแหล่งที่มา ไม่มีวิธีการทำเช่นนี้จาก UI ดังนั้นฉันใช้บรรทัดคำสั่งเพื่อรับรุ่นที่เหมาะสม

ด้วยเหตุผลบางอย่างInstall-Packageบอกต่อไปเรื่อย ๆ ว่า nuget gallery ไม่สามารถเข้าถึงได้

แหล่งที่มาที่ nuget.org [ https://www.nuget.org/api/v2/]ไม่สามารถเข้าถึงได้ ย้อนกลับไปที่ NuGet Local Cache

สิ่งนี้เกิดขึ้นได้จากหนึ่งในโซลูชันของเราเท่านั้น หากฉันสร้างโซลูชันใหม่หรือใช้โซลูชันอื่นในที่เก็บเดียวกันแพ็กเกจจะติดตั้งตามที่คาดไว้ ฉันยังสามารถติดตั้งแพ็กเกจในโซลูชันจำลองเพื่อเติมแคชโลคัลและติดตั้งแพ็กเกจได้สำเร็จในโซลูชันที่ผิดพลาด ฉันได้ลองแล้วInvoke-WebRequestที่ url จาก NuGet Console และได้รับ HTTP 200 แล้ว

อะไรทำให้เกิดสิ่งนี้ มีวิธีการแทนที่แหล่งที่มาของแพคเกจบนพื้นฐานต่อการแก้ปัญหา / โครงการ?


3
ฉันมีปัญหาเดียวกันนี้ ฉันได้ติดตั้ง VS 2013 อัปเดต 2 เมื่อวานนี้บางทีนี่อาจเป็นข้อผิดพลาดใหม่ ... ? Btw ฉันสามารถติดตั้งแพคเกจใด ๆ ผ่านทางกล่องโต้ตอบ "จัดการแพคเกจ NuGet" โดยไม่มีปัญหาปัญหานี้เกิดขึ้นในคอนโซลตัวจัดการแพคเกจเท่านั้น
rsenna

2
ฉันมีปัญหาเดียวกัน ใช้งานได้เสมอในกล่องโต้ตอบจัดการแพ็คเกจ - ไม่สามารถใช้งานได้ใน Package Manager Console
David Tansey

10
การเริ่มต้นใหม่ Visual Studio แก้ไขสิ่งนี้ให้ฉัน
ಠ_ಠ

คำตอบ:


338

แม้ว่าแหล่งที่มาของแพคเกจของฉันถูกตั้งค่าเป็น nuget.org ในแพคเกจคอนโซลการจัดการเพิ่มการ-Source nuget.orgโต้แย้งได้รับการแก้ไขนี้สำหรับฉันอย่างชัดเจน

ดังนั้นตัวอย่างของการใช้จะเป็น:

Install-Package Akka.net -Source nuget.org

Akka.net เป็นแพ็คเกจของคุณที่คุณต้องการติดตั้งเป็นเพียงตัวอย่างเท่านั้น


1
ฉันรีสตาร์ทพีซีและ Visual Studio แต่ .. การเพิ่ม -Source nuget.org ได้ทำเคล็ดลับสำหรับอินสแตนซ์. vbproj ใหม่ของฉันภายในหลายโครงการที่มีอยู่ของฉัน. sln
bkwdesign

จะเพิ่มอาร์กิวเมนต์นี้ได้ที่ไหนและอย่างไร คุณช่วยให้ข้อมูลเพิ่มเติมได้ไหม
Radenko Zec

มันใช้ได้กับฉันด้วย (ตอนนี้จริง ๆ แล้ว!) ฉันพยายามติดตั้ง jQuery เวอร์ชันเก่า แต่ก็ยังเพิ่มข้อผิดพลาด: "แหล่งที่มาที่ nuget.org [ nuget.org/api/v2/] " ฉันไม่ทราบวิธีการแก้ไข
Loudenvier

ขอบคุณฉันทำแบบนี้:Install-Package jQuery.UI.Combined -Source nuget.org
ไชยจุฑ

7
คุณมีความคิดว่าวิธีนี้ทำงานอย่างไร ฉันแค่อยากรู้อยากเห็นเพราะมันไม่สมเหตุสมผลสำหรับฉันแม้ว่ามันจะใช้งานได้ก็ตาม ดังนั้นข้อผิดพลาดบอกว่าแหล่งที่มาที่ nuget.org [ nuget.org/api/v2/]ไม่สามารถเข้าถึงได้จากนั้นฉันจะระบุแหล่งที่มาเดียวกัน-Source nuget.orgและใช้งานได้หรือไม่
วลาดิมีร์

10

ฉันต้องคัดลอกแหล่ง NuGet เริ่มต้นในตัวเลือกของ Visual Studio มีแหล่งที่มาคัดลอกผมเปลี่ยน URL จากไปhttps httpการแก้ไขปัญหาสำหรับฉัน

เครดิตสำหรับคำแนะนำนี้อยู่ที่นี่: https://nuget.codeplex.com/discussions/561075#PostDetailsCell_1354351ถึง "jpharris4"


นี่เป็นจุดที่ดีมาก NuGet อาจมีความไวต่อการตรวจสอบใบรับรอง
Etienne Maheu

6

ผมไม่แน่ใจว่าสิ่งที่สามารถทำให้เกิดปัญหาของคุณ แต่มีแน่นอนวิธีที่จะแทนที่แหล่งแพคเกจบนพื้นฐานต่อการแก้ปัญหาแต่ถ้าคุณได้เปิดใช้งานแพ็กเกจ NuGet Restoreในการแก้ปัญหาที่ได้รับ

เมื่อโซลูชันได้เปิดใช้งานแพคเกจ NuGet กู้คืนโฟลเดอร์ที่ชื่อว่า ".nuget" จะถูกเพิ่มเข้าไปในโซลูชัน ภายใต้สิ่งนี้จะเป็นไฟล์ชื่อ "NuGet.targets" ที่มี ItemGroup ที่มีเงื่อนไขคือ "'$ (PackageSources)' == ''" เช่นเดียวกับที่คุณเห็นในภาพที่แนบมา

หาก ItemGroup ว่างเปล่า (หรือแสดงความคิดเห็นอย่างสมบูรณ์ตามที่แสดงในภาพประกอบ) วิธีการแก้ปัญหาจะใช้ไฟล์เฉพาะที่ควรจะเหมือนกับแหล่งที่อยู่ในรายการภายใต้เครื่องมือ >> ตัวเลือก แต่ถ้าคุณไม่แสดงข้อคิดเห็นหรือเพิ่มรายการ PackageSource ให้กับ ItemGroup นั้นโซลูชันจะค้นหาแหล่งแพ็กเกจที่ปรากฏและเฉพาะรายการที่ระบุไว้เท่านั้น

เนื้อหาของไฟล์ Nuget.targets


2
แหล่งแพ็กเกจที่กำหนดไว้ในไฟล์ NuGet.targets จะส่งผลกระทบต่อแหล่งที่ใช้ในระหว่างการบิลด์เมื่อสร้างแพ็คเกจเท่านั้น ที่มาของแพคเกจในไฟล์ NuGet.config ในไดเรกทอรี. nuget จะส่งผลกระทบต่อแหล่งที่มาของแพคเกจที่มีให้กับโครงการใน Visual Studio
Matt Ward

ฉันเปิดใช้งานแพคเกจการคืนค่าสำหรับโซลูชันนี้แล้ว ItemGroup มีการกำหนดค่าเช่นเดียวกับในภาพหน้าจอของคุณซึ่งฉันถือว่าเป็นการตั้งค่าเริ่มต้นดังนั้นฉันไม่คิดว่านี่เป็นปัญหา อย่างไรก็ตามการคืนค่าแพ็คเกจได้เปิดใช้งานมานานแล้วและไฟล์เป้าหมายเปลี่ยนไปตั้งแต่นั้นมา ฉันได้ลองอัปเดตไฟล์เหล่านั้นเป็นเวอร์ชันล่าสุดโดยการลบและเปิดใช้งานแพคเกจการคืนค่าและดูเหมือนว่ามันจะแก้ปัญหาได้
Etienne Maheu

หรือไม่. มันใช้งานได้ในตอนแรก แต่หลังจากคืนค่าแพ็คเกจสำหรับการแก้ปัญหาและเริ่มต้นสตูดิโอภาพใหม่ปัญหาก็กลับมา
Etienne Maheu

คำถามที่ชี้แจงน้อย: 1) คุณมีรุ่นที่เหมาะสมอ้างอิงใน packages.config? 2) คุณได้ยืนยันว่าเวอร์ชั่นที่คุณต้องการยังคงมีอยู่บนเซิร์ฟเวอร์ NuGetหรือไม่? 3) คุณทำความสะอาดโซลูชันแล้วสร้างใหม่หลังจากเสร็จสิ้น 1) และ 2) หรือไม่
Omnidisciplinarianist

1
ถ้าเป็นการปลอบใจใด ๆ - ฉันได้รับปัญหานี้ แต่เฉพาะในพีซีที่ทำงานของฉันและมันเกิดขึ้นกับโครงการส่วนใหญ่ สิ่งที่แปลกคือมันไม่ต่อเนื่องซึ่งทำให้ฉันโกรธมาก!
Matt

6

คุณสามารถเปลี่ยนแหล่งที่มาของ NuGet ได้จาก UI เช่นกัน เพียงเปลี่ยนแหล่งที่มาของ NuGet ให้เป็นรุ่นที่เก่ากว่าและควรจะทำงานได้ดี

ป้อนคำอธิบายรูปภาพที่นี่

ดูเหมือนว่ายังมีข้อบกพร่องเล็กน้อยใน VS 2015 ที่เกี่ยวข้องกับ api.nuget.org (v3)


2

ใน Package Manager Console ของฉันฉันไม่เห็นแหล่งที่มา

กำลังจะ: เครื่องมือ -> ตัวเลือก -> ตัวจัดการแพคเกจ Nuget -> แหล่งข้อมูลแพ็คเกจ

ฉันพบแหล่งที่มา การยกเลิกการเลือกและการตรวจสอบพวกเขากลับทำให้ปรากฏขึ้นอีกครั้งใน Package Manager Console ของฉัน


2

ฉันต้องให้คอมมอนพร้อมกับ URL แบบเต็มเช่น Install-Package MySql.Data.Entity -Version 6.9.8 -Source http://www.nuget.org/api/v2


1

ในกรณีของฉันสาเหตุคือแพคเกจมีข้อตกลง ผ่าน UI - กล่องโต้ตอบ "จัดการแพคเกจ NuGet" คุณมีตัวเลือกให้ยอมรับและดำเนินการต่อ

Package Manager Console ใน VS 2013 ดูเหมือนจะมีปัญหากับสิ่งนี้ อย่างที่คนอื่น ๆ บอกว่าการรีสตาร์ท VS 2013 อาจแก้ไขได้สำหรับคอนโซล


1

สิ่งนี้ใช้ได้กับฉันใน VS 2015 ศาสตราจารย์: เครื่องมือ -> ตัวเลือก -> ผู้จัดการแพคเกจ Nuget -> แหล่งข้อมูลแพ็คเกจ

  1. กดปุ่มเพิ่ม
  2. แก้ไขในชื่อป้ายกำกับ: nuget.org
  3. แก้ไขในป้ายกำกับแหล่งที่มา: https://www.nuget.org/api/v2/
  4. กดตกลง

หวังว่ามันจะช่วย;)


สำหรับ VS 2015 คุณควรใช้ v3 ของรายการ ... ไม่ใช่ v2! นำมาจากหน้าแรกของพวกเขา NuGet feed v3 (VS 2015 / NuGet v3.x): api.nuget.org/v3/index.json NuGet feed v2 (VS 2013 และก่อนหน้า / NuGet 2.x): nuget.org/api/v2
Paul Zahra

0

ฉันมีปัญหาเดียวกันกับข้อความเดียวกัน แต่สาเหตุของปัญหาของฉันหายไปเชื่อมต่อกับ TFS เซิร์ฟเวอร์ TFS ของฉันโฮสต์อยู่ในเครือข่ายอื่นและฉันใช้ VPN เพื่อเข้าถึง เมื่อฉันพยายามติดตั้งแพคเกจโดยไม่มีการเชื่อมต่อกับ TFS (VPN ถูกปิด) ฉันมีปัญหาเดียวกัน

ระวังพฤติกรรม TFS นี้


0

เกิดขึ้นเพราะคุณทำงานในโหมดออฟไลน์เมื่อคุณเชื่อมต่อเครือข่ายอีกครั้งจะต้องออกจากระบบและออกจากระบบ ผู้จัดการแพคเกจจะเริ่มต้นได้อย่างราบรื่นอีกครั้ง


0

ฉันได้พบกับปัญหานี้ VS2013 และเสียเวลา 3 ชั่วโมง

ไม่แน่ใจว่าสาเหตุของปัญหาคืออะไร แต่วิธีการแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉัน

การติดตั้งคอนโซล Nuget Package Manager อีกครั้งทำงานได้สำหรับฉัน

เครื่องมือ -> ส่วนขยายและการอัพเดท -> ภายใต้ทั้งหมดมองหา Nuget Package Manager สำหรับ Visual Studio และกดถอนการติดตั้ง

ไปที่https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013และดาวน์โหลดส่วนขยาย


0

ป้อนคำอธิบายรูปภาพที่นี่อาจเป็นไฟร์วอลล์สำนักงาน / บ้านของคุณที่ปิดกั้น nuget.org ดังนั้นลองเชื่อมต่อเครือข่ายอินเทอร์เน็ตที่แตกต่างกันเช่นจากมือถือหรือ wifi ของคุณฉันสามารถแก้ปัญหาด้วยวิธีนี้ได้

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