2015-03-20 24 views
5

Tôi đang cố gắng hiểu liệu có cách nào để dựa vào Khôi phục Gói Tự động Nuget khi tham chiếu các thư viện được lưu trữ trên Github hay không. Vấn đề là khi tôi thêm một số thư viện như submodule, nó có thư mục/packages/của riêng nó. Nhưng, khi tôi thêm csproj từ thư viện đó vào giải pháp của tôi vì không có DLL trong/packages/directory của submodule đó, xây dựng không thành công.Khôi phục Gói Tự động NuGet khi sử dụng các mô-đun con git

Rõ ràng, sửa lỗi dễ dàng trên máy tính của tôi là mở tệp .sln từ mô-đun con mà tôi đã tham chiếu, tạo một bản dựng. Bây giờ, xây dựng từ giải pháp chính của tôi rõ ràng sẽ làm việc kể từ khi/gói/thư mục trong submodule là dân cư. Nhưng, đây không phải là điều tôi có thể làm trên máy chủ xây dựng.

Bất kỳ cách nào để giải quyết vấn đề này mà không hoàn toàn rối tung lên mô-đun con? Tôi rõ ràng cũng không muốn thay đổi submodule .csproj bởi vì điều đó sẽ đưa nó ra khỏi đồng bộ với nguồn gốc. Lý tưởng nhất là tôi sẽ yêu nếu tôi có thể hướng dẫn nuget để kéo gói cho submodule tham chiếu .csproj trong thư mục/packages/của riêng nó.

+0

Bản sao có thể có của [Khôi phục gói Nuget với git submodule] (http://stackoverflow.com/questions/18609333/nuget-package-restore-with-git-submodule) – georgiosd

Trả lời

1

Có hai loại khôi phục gói tự động. Một trong đó được kích hoạt khi bạn xây dựng một giải pháp trong Visual Studio, và một trong đó là MSBuild dựa và yêu cầu sửa đổi dự án của bạn để chạy NuGet.exe khôi phục như là một phần của xây dựng. Việc khôi phục MSBuild dựa trên được kích hoạt bằng cách chọn Enable NuGet Package Restore, nhưng điều này đã không được chấp nhận bởi nhóm NuGet.

Đối với một máy chủ tòa nhà, bạn sẽ cần phải làm một trong hai:

  1. Run NuGet.exe restore cho tất cả các giải pháp trước khi bạn chạy việc xây dựng.
  2. Có các gói NuGet được MSBuild khôi phục làm giải pháp chính được xây dựng.

Để khôi phục lại các gói NuGet với MSBuild bạn có thể sử dụng MSBuild dựa NuGet gói bị phản đối khôi phục hoặc có lẽ tốt hơn là tạo ra một tập tin Before.YourSolution.sln.targets như mô tả trong Ultimate Cross Platform NuGet Restore đường bưu điện. Các tùy chỉnh Trước khi .... mục tiêu tập tin sẽ cần phải khôi phục lại các gói cho submodule.

Nếu bạn sử dụng khôi phục MSBuild dựa trên thì một trong những lợi ích là không có bước dựng sẵn mà ai đó cần chạy trước khi xây dựng giải pháp kể từ khi xây dựng giải pháp thực hiện khôi phục. Một trong những vấn đề của việc khôi phục gói MSBuild dựa trên, ít nhất là với việc được kích hoạt khi chọn Enable NuGet Package Restore trong Visual Studio, là nó có thể gây ra vấn đề với gói NuGet sử dụng các tệp MSBuild .targets của riêng họ.

Các vấn đề liên quan