ฉันพบปัญหานี้ในสองสถานการณ์
ก่อนอื่นเมื่อฉันพยายามสร้างโซลูชันจากบรรทัดคำสั่งโดยใช้ msbuild.exe ประการที่สองเมื่อฉันพยายามสร้าง sln และโครงการที่มีอยู่บน build ของฉันโดยใช้ TFS และ CI
ฉันได้รับข้อผิดพลาดที่อ้างว่ามีการอ้างอิงหายไป เมื่อตรวจสอบทั้งไดเรกทอรีในเครื่องของฉันและเซิร์ฟเวอร์ TFS ฉันเห็นว่าโฟลเดอร์ / packages ไม่ได้ถูกสร้างขึ้นและแพ็คเกจ nuget จะไม่ถูกคัดลอก ทำตามคำแนะนำที่ระบุไว้ในคำตอบของ Alexandre http://nuget.codeplex.com/workitem/1879ยังไม่ได้ผลสำหรับฉัน
ฉันได้เปิดใช้งานการคืนค่าแพคเกจผ่าน VS2010 และฉันได้เห็นงานสร้างจากภายใน VS2010 อีกครั้งการใช้ msbuild ล้มเหลววิธีแก้ปัญหาของฉันอาจไม่ถูกต้องทั้งหมด แต่สำหรับสภาพแวดล้อมของฉันสิ่งนี้ได้ทุกอย่างทำงานจากการสร้างบรรทัดคำสั่งภายในเครื่องและจาก CI build ใน TFS
ฉันเข้าสู่ \ nuget และเปลี่ยนบรรทัดนี้ในไฟล์. nuget \ NuGet.targets:
จาก:
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>
ถึง: (โปรดสังเกตโดยไม่ต้องใส่เครื่องหมายคำพูดล้อมรอบตัวแปร)
<RestoreCommand>$(NuGetCommand) install $(PackagesConfig) -source $(PackageSources) -o $(PackagesDir)</RestoreCommand>
ฉันเข้าใจว่าถ้าไดเรกทอรีของฉันมีช่องว่างในแฟ้มสิ่งนี้จะล้มเหลว แต่ฉันไม่มีช่องว่างในไดเรกทอรีของฉันและวิธีแก้ปัญหานี้ทำให้งานสร้างของฉันเสร็จสมบูรณ์ ... ในขณะนี้
ฉันจะบอกว่าการเปิดใช้การบันทึกระดับการวินิจฉัยในงานสร้างของคุณจะช่วยแสดงให้เห็นว่าคำสั่งใดถูกดำเนินการโดย msbuild นี่คือสิ่งที่ทำให้ฉันแฮ็คไฟล์เป้าหมายชั่วคราว