การเปิดโครงการใน Visual Studio ล้มเหลวเนื่องจากไม่พบข้อผิดพลาด nuget.targets


105

ดังนั้นฉันจึงดาวน์โหลด Twitterizer จากhttp://www.twitterizer.net/downloads/

ฉันพยายามเปิดใน Visual Studio และได้รับข้อผิดพลาด nuget เหล่านี้:

The imported project "C:\Twitterizer\.nuget\nuget.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file 
exists on disk.

เกิดอะไรขึ้น. ฉันจะจัดการกับปัญหานี้ได้อย่างไร?


5
โปรดทราบในกรณีที่มีผู้อื่นพบปัญหานี้ Nuget 2.7 เปิดตัวการคืนค่าแพ็คเกจประเภทใหม่ หากคุณพยายามเพิ่มโครงการที่ใช้รูปแบบเก่าลงในโซลูชันที่ใช้รูปแบบใหม่คุณจะได้รับข้อผิดพลาดเดียวกันนี้ วิธีแก้ไขคือย้ายโปรเจ็กต์เป็นรูปแบบใหม่: docs.nuget.org/docs/workflows/…
Slapout

คำตอบ:


171
  1. ติดตั้ง Nuget
  2. คลิกขวาที่โซลูชันและเลือก "Enable NuGet Package Restore" ใน Visual Studio 2013 และใหม่กว่าให้เลือก "Restore NuGet Packages" แทน
  3. คลิกตกลงบนคำเตือน
  4. ปิดและเปิดโซลูชันอีกครั้ง

ตอนนี้ควรเป็น hunky-dory


2
ขอบคุณสำหรับสิ่งนี้คงจะดีถ้าพวกเขาให้ข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์มากขึ้นใน VS สำหรับสิ่งนั้น
rossisdead

2
ฉันยังคงได้รับข้อผิดพลาดนี้แม้ว่าจะใช้ไม่ได้กับ nuget 2.7 อีกต่อไป
thepaulpage

คุณต้องแก้ปัญหาชั่วคราวที่ @Slapout กล่าวถึง (แสดงความคิดเห็นในคำถามเดิม)
JasonS

ยังไม่ทำงานที่นี่มันบอกว่าไม่มีการอ้างอิงอีกต่อไปเพื่อกู้คืน ฉันลบโฟลเดอร์แพ็คเกจไปแล้วและกู้คืนสองสามครั้ง :(
rodrigorf

23

อีกทางเลือกหนึ่งคือแก้ไขไฟล์. csproj ด้วย texteditor และลบหรือแสดงความคิดเห็นออกจากส่วนนั้น


4
หากต้องการขยายในกรณีนี้ - หากคุณย้ายโปรเจ็กต์จากโซลูชันที่มีไฟล์. nuget \ nuget.targets ที่ชัดเจนไปยังไฟล์ใหม่คุณจะพบปัญหานี้ (แม้ว่าจะกู้คืนแพ็คเกจ NuGet แล้วก็ตาม) ในกรณีนี้ให้สร้าง nuget . กำหนดเป้าหมายหรือแก้ไขไฟล์โครงการด้วยตนเอง
ThisGuy

ฉันยังใช้โซลูชันนี้เนื่องจากโครงการของฉันไม่ใช้แพ็คเกจ NuGet และ VS ดูเหมือนว่าจะสร้างสิ่งนี้โดยอัตโนมัติ ขอบคุณสวรรค์สำหรับการควบคุมเวอร์ชันที่ทำให้สามารถเริ่มต้นบรรทัดเพิ่มเติมจาก. csproj
Ivan G

ส่วนใดที่ต้องลบออก
Zapnologica

18

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

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" />

ในการแก้ปัญหาคุณสามารถเปิด.slnและไม่เปิด.csprojโดยตรง ... หรือลบimportบรรทัดด้านบน

โปรดสังเกตว่าข้อผิดพลาดดังกล่าวจะเกิดขึ้นเฉพาะเมื่อคุณใช้การsolution wiseคืนค่าแพ็คเกจซึ่งไม่แนะนำอีกต่อไป


2
นี่คือปัญหาที่ฉันมี
sparkyShorts

1
ลบ "บรรทัดการนำเข้าด้านบน" ทำเคล็ดลับให้ฉัน ขอบคุณ !!
Bart

5

เพิ่งพบปัญหาเดียวกัน แต่ในกรณีของฉันปัญหาคือช่องว่างในชื่อโฟลเดอร์:

Nuget บอกฉันว่าไม่พบ "C: \ git \ My Path" แต่ฉันสามารถไปที่ "C: \ git \ My% 20Path" ได้ การลบช่องว่างในชื่อพับ "แก้ไข" ปัญหา


นี่คือปัญหาของฉัน - ขอบคุณมาก!
D.Nielsen

2

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

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

หากคุณกำลังใช้ TFS ให้ลบไฟล์ NuGet.exe และ NuGet.targets ออกจากโฟลเดอร์. nuget ของโซลูชัน ตรวจสอบให้แน่ใจว่าไฟล์นั้นถูกลบออกจากพื้นที่ทำงานของโซลูชันด้วย เก็บไฟล์ NuGet.Config ไว้เพื่อข้ามการเพิ่มแพ็กเกจไปยังคอนโทรลซอร์สต่อไป แก้ไขไฟล์โปรเจ็กต์แต่ละไฟล์ (เช่น. csproj, .vbproj) ในโซลูชันและลบการอ้างอิงไปยังไฟล์ NuGet.targets เปิดไฟล์โครงการในตัวแก้ไขที่คุณเลือกและลบการตั้งค่าต่อไปนี้:

จริง ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

พวกเขา สำหรับข้อมูลเพิ่มเติมโปรดดูที่ http://go.microsoft.com/fwlink/?LinkID=322105 http://go.microsoft.com/fwlink/?LinkID=322105ไฟล์ที่หายไปคือ {0} หากคุณไม่ได้ใช้ TFS ให้ลบโฟลเดอร์. net ออกจากโซลูชันของคุณ ตรวจสอบให้แน่ใจว่าโฟลเดอร์นั้นถูกลบออกจากพื้นที่ทำงานของโซลูชันด้วย แก้ไขไฟล์โปรเจ็กต์แต่ละไฟล์ (เช่น. csproj, .vbproj) ในโซลูชันและลบการอ้างอิงไปยังไฟล์ NuGet.targets เปิดไฟล์โครงการในตัวแก้ไขที่คุณเลือกและลบการตั้งค่าต่อไปนี้:

จริง ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

พวกเขา สำหรับข้อมูลเพิ่มเติมโปรดดูที่ http://go.microsoft.com/fwlink/?LinkID=322105 ไฟล์ที่หายไปคือ {0} สคริปต์การย้ายผู้ใช้หลายคนร้องขอเครื่องมือการย้ายเพื่อปิดใช้งานการกู้คืนแพ็คเกจที่ใช้ MSBuild และแปลงเป็นการคืนค่าแพ็คเกจอัตโนมัติ ทีม NuGet ได้ตัดสินใจที่จะไม่จัดหาเครื่องมือที่รองรับสำหรับสิ่งนี้เนื่องจากมีความเป็นไปได้สูงที่จะเกิดกรณีขอบที่ไม่สามารถจัดการได้ อย่างไรก็ตาม Owen Johnson ได้เขียนสคริปต์ PowerShell ที่สามารถทำงานได้ในหลายกรณี มีให้บริการบน GitHub และสามารถใช้ได้โดยยอมรับความเสี่ยงของคุณเอง กล่าวอีกนัยหนึ่งอย่าลืมยอมรับการควบคุมแหล่งที่มาก่อนที่จะเรียกใช้ในกรณีที่ไม่ได้ผลในสถานการณ์ของคุณ

Nuget.target Fix


1

เมื่อฉันได้รับnuget.targets not foundข้อผิดพลาดใช้ i ผู้จัดการแพคเกจเพื่อหนึ่งของแพคเกจในโครงการและติดตั้งโดยใช้uninstall-package install-packageดูเหมือนว่ามันจะสร้างไฟล์ nugets.target ขึ้นมาใหม่


1

ทางออกที่ง่ายที่สุดเมื่อคุณได้รับข้อผิดพลาดนี้เพื่อกู้คืนสิ่งที่ขาดหายไปNuGet.targetsใน Visual Studio Solution Explorer คือ:

  1. คลิกขวาที่ไฟล์โซลูชัน
  2. จากเมนูบริบทให้คลิกตัวเลือก" Enable Nuget Package Restore ... "

สิ่งนี้จะดาวน์โหลดไฟล์ที่หายไปในส่วน ".nugetโฟลเดอร์ "" :)

ข้างต้นถือว่าคุณได้ติดตั้ง Nuget ไว้แล้ว - หากไม่ปฏิบัติตามคำตอบที่ยอมรับด้านบน!

อัปเดต: โปรดทราบสำหรับ Visual Studio เวอร์ชันที่เกินกว่า 2013 ตัวเลือกนี้เรียกว่า " Restore NuGet Packages "


1
ฉันไม่มีตัวเลือกเปิดใช้งานการคืนค่าแพ็คเกจ nuget ฉันมีrestore nuget packages.
Zapnologica

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