Tôi đã gặp vấn đề này trong hai kịch bản.
Đầu tiên, khi tôi cố gắng xây dựng giải pháp của mình từ dòng lệnh bằng msbuild.exe. Thứ hai, khi tôi cố gắng xây dựng sln và các dự án chứa trên máy chủ xây dựng của mình bằng TFS và CI.
Tôi nhận được lỗi tuyên bố rằng tài liệu tham khảo bị thiếu. Khi kiểm tra cả thư mục xây dựng cục bộ của tôi và máy chủ TFS, tôi thấy rằng thư mục / gói không được tạo và các gói nuget không được sao chép. Làm theo các hướng dẫn được liệt kê trong câu trả lời của Alexandre http://nuget.codeplex.com/workitem/1879 cũng không hiệu quả với tôi.
Tôi đã kích hoạt Gói khôi phục qua VS2010 và tôi đã thấy các bản dựng chỉ hoạt động từ bên trong VS2010. Một lần nữa, sử dụng msbuild không thành công. Cách giải quyết của tôi có thể hoàn toàn không hợp lệ, nhưng đối với môi trường của tôi, điều này có mọi thứ hoạt động từ một dòng lệnh được xây dựng cục bộ, cũng như từ một bản dựng CI trong TFS.
Tôi đã đi vào. \ Nuget và thay đổi dòng này trong tệp .nuget \ NuGet.target:
từ:
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>
to: (chú ý, không có dấu ngoặc kép quanh các biến)
<RestoreCommand>$(NuGetCommand) install $(PackagesConfig) -source $(PackageSources) -o $(PackagesDir)</RestoreCommand>
Tôi hiểu rằng nếu thư mục của tôi có không gian trong đó, điều này sẽ thất bại, nhưng tôi không có không gian trong thư mục của mình và vì vậy cách giải quyết này đã giúp bản dựng của tôi hoàn thành thành công ... trong thời điểm hiện tại.
Tôi sẽ nói rằng việc bật ghi nhật ký cấp chẩn đoán trong bản dựng của bạn sẽ giúp hiển thị những lệnh nào đang được msbuild thực thi. Đây là những gì khiến tôi tạm thời hack tệp mục tiêu.