2012-02-14 5 views
7

Tôi đã kích hoạt tùy chọn Restore Package trong giải pháp của mình, vì vậy khi tôi tải mã lên máy chủ CI, nó cập nhật tất cả các gói cần xây dựng chính xác và hoạt động tốt. Bây giờ vấn đề là trên máy cục bộ của tôi, việc xây dựng mất một thời gian dài để bắt đầu bởi vì là "cập nhật các gói". Có cách nào để bật Gói khôi phục trong bản phát hành bản phát hành không?Ngăn chặn NuGet Restore Package gỡ lỗi chỉ xây dựng

tôi đã cố gắng để di chuyển <RestorePackage> tài sản trong các tập tin csproj vào các phần phát hành/debug với falsetrue, nhưng NuGet cập nhật các thuộc tính khi mở NuGet console và reset cả true; cũng đã cố gắng chỉ bao gồm các tài sản trong phần phát hành, nhưng sau đó NuGet thêm nó vào phần toàn cầu ... vì vậy tôi đã không có may mắn làm cho nó ở cách tôi muốn ...

Bất kỳ lời khuyên?

Trả lời

15

Bạn đã có thể quản lý để trả lời câu này bây giờ nhưng nếu không thì đây là những bước bạn cần phải làm theo

Ngay nơi tập tin giải pháp của bạn là bên trong Windows có phải là một thư mục có tên .nuget. Đổi tên hoặc xóa thư mục này.

Bây giờ mở mỗi csproj hoặc .vbproj tập tin trong notepad hoặc bất kỳ soạn thảo văn bản và loại bỏ những dòng này

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

Phần quan trọng là loại bỏ/đổi tên thư mục .nuget. Điều này bây giờ sẽ vô hiệu hóa hoàn toàn gói khôi phục.

Edit: Để chọn lọc vô hiệu hóa gói khôi phục cho DEBUG xây dựng chỉnh sửa file Nuget.settings.targets và sửa đổi dòng sau

<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages> 

Để

<RestorePackages Condition="$(RestorePackages) == '' AND '$(Configuration)' == 'Debug'">false</RestorePackages> 

File Nuget.settings.targets là dưới thư mục .nuget cần nằm trong cùng thư mục với tệp giải pháp của bạn.

+0

Vâng, tôi không muốn xóa gói Khôi phục hoàn toàn, tôi chỉ muốn vô hiệu hóa nó cho xây dựng gỡ lỗi .... Tôi không muốn nó chạy khi tôi đang ở trong máy tính địa phương/dev của tôi, nhưng tôi muốn nó lấy các gói và tất cả khi tôi tải nó lên máy chủ CI. – Jaime

+0

Cảm ơn đề xuất chỉnh sửa của bạn đã làm điều đó. – Jaime

+0

Tôi nghĩ rằng nó phải là một OR trong ví dụ cuối cùng chứ không phải là AND - tức là $ (RestorePackages) == '' HOẶC $ (Cấu hình) == 'Gỡ lỗi'. –