Tôi đang có một phiên tái cấu trúc đặc biệt khó khăn liên quan đến giải pháp C# với nhiều dự án trong Visual Studio 2012. Tôi cần rút một loạt mã vào các hội đồng của riêng họ để mã có thể được chia sẻ trên nhiều dự án. dung dịch. Tuy nhiên, không có vấn đề gì tôi cố gắng, tôi nhận được cảnh báo cho các dự án tham khảo các dự án chia sẻ mới rằng "Tất cả các dự án tham chiếu {shared project name} phải cài đặt gói nuget Microsoft.Bcl.Build".Tất cả các dự án tham chiếu tiểu dự án phải cài đặt gói NuGet Microsoft.Bcl.Build (C#/Windows Phone 7)?
Tôi đã qua các dự án phụ thuộc và các dự án được chia sẻ bằng lược răng, xác minh chi tiết rằng tất cả đều sử dụng cùng một phiên bản và cùng một DLL chính xác cho Microsoft.Bcl phiên bản 1.0.1.19 và Microsoft.Bcl. async phiên bản 1.0.16 gói:
- System.Runtime
System.Threading.Tasks
Microsoft.Threading.Task
- Microsoft. Threading.Tasks.Extensions
- Microsoft.Threading.Tasks.Extensions.Phone
Các đường dẫn DLL đều giải quyết và giống hệt nhau. Các tập tin XAP không xây dựng nhưng tôi vẫn nhận được rằng cảnh báo nói với tôi rằng Microsoft.Bcl.Build không được tham chiếu trong các dự án phụ thuộc, mặc dù thực tế là tôi có thể thấy rằng nó được.
Nếu tôi thử thay vì gỡ cài đặt và sau đó cài đặt lại hai gói đó bằng NuGet cho từng dự án, tôi nhận tham chiếu với đường dẫn trống và biểu tượng cảnh báo cho tham chiếu 5 DLL liên quan. Vì một số lý do, NuGet thêm các tham chiếu nhưng không thể tìm thấy các tệp DLL. Ngoài ra, nếu tôi làm điều này, tôi thấy mình gặp sự cố thường xuyên khi có dự án mà tôi gặp phải lỗi "Không thể thêm tham chiếu" khi cố gắng thêm tham chiếu. Sau đó, tôi đã đóng và mở lại giải pháp và dẫn đến lỗi "dự án không tải được". Vì vậy, tôi phải chỉnh sửa tệp dự án theo cách thủ công, xóa các câu lệnh nhập gói bị lỗi và tải lại dự án.
Làm cách nào để khắc phục sự cố này và kỹ thuật chung để tránh đau đầu này trong tương lai là gì? Để NuGet quản lý các gói bị thiếu không giúp ích gì cho al.
Tôi vừa cập nhật gói NuGet trong ứng dụng của mình và giờ tôi nhận được thông báo cảnh báo tương tự về việc cần cài đặt Microsoft.Bcl.Build. Tôi không biết điều này "khôi phục" toàn bộ điều gì đang được thảo luận. Tôi không thấy bất kỳ dấu hiệu nào của "thanh màu vàng có nút khôi phục". Giải pháp của tôi chứa dự án triển khai Azure tham chiếu đến dự án chính, nhưng giao diện người dùng Visual Studio 2012 không cung cấp tùy chọn menu ngữ cảnh để quản lý gói NuGet cho dự án đó. Bất kỳ suy nghĩ hoặc gợi ý nào? –
@ Bob.at.SBS đóng VS. Trong tệp explorer, mở thư mục giải pháp của bạn, đi vào thư mục .nuget và chỉnh sửa packages.config của bạn. Thêm dòng này vào nút gói. Bây giờ, mở lại giải pháp của bạn và nhấp chuột phải vào giải pháp của bạn -> Quản lý gói Nuget cho giải pháp. Thanh màu vàng sẽ xuất hiện. –
Swell
Để hoàn thành câu trả lời của tôi, Microsoft.Bcl.Build là một tệp đích, VS yêu cầu nó tải dự án của bạn. Khi bạn nhấn khôi phục, nó sẽ khôi phục lại gói và bạn sẽ có thể tải lại các dự án bị thiếu! – Swell