2014-07-13 19 views
10

Tôi có một gói nguồn cấp dữ liệu NuGet riêng đang chạy, mà tôi sử dụng để chia sẻ một số chức năng và tiện ích nhất định giữa các dự án của mình. Nó hoạt động tốt trong Visual Studio, nhưng gần đây tôi đã bắt đầu thiết lập một tích hợp liên tục xây dựng cho một trong các dự án của tôi trên Visual Studio Online, và có vẻ như VSO không thể nhìn thấy nguồn cấp dữ liệu cá nhân của tôi.Thêm nguồn cấp dữ liệu gói Nuget riêng vào Visual Studio Online

Tôi đang sử dụng phương pháp khôi phục gói mới - phương pháp liên quan đến việc đặt hộp kiểm "Cho phép NuGet tải xuống gói bị thiếu" trong tùy chọn VS. Tôi là không phải bằng tùy chọn "Bật khôi phục gói NuGet" trong menu ngữ cảnh giải pháp, vì đây thực sự là the old way of doing it và gây ra sự cố ở nơi khác.

Tôi cũng không làm bất kỳ điều gì thay đổi tệp dự án của mình; Tôi đang sử dụng định nghĩa xây dựng tùy chỉnh (sử dụng công cụ XAML Workflow) để tôi có thể áp dụng nó cho bất kỳ dự án nào của mình bằng cách chọn nó từ trình đơn thả xuống "Build process template" trong trình soạn thảo định nghĩa xây dựng. Tôi đang làm nó theo cách này bởi vì tôi đang thêm một loạt các bước khác bao gồm một số kịch bản sau xây dựng để tạo điều kiện triển khai tự động cho một máy chủ lưu trữ; một số các bước này là một chút phức tạp, vì vậy giữ chúng trong quá trình xây dựng có nghĩa là tôi chỉ phải thiết lập chúng một lần. Vì vậy, không sử dụng giải pháp menu ngữ cảnh cũ đặt nuget.exe vào thư mục giải pháp, và không gây rối với dự án, làm cách nào tôi có thể xây dựng VSO để khôi phục các gói từ nguồn cấp dữ liệu cá nhân của tôi?

Mẫu luồng công việc xây dựng có hoạt động "NuGetRestore", có thể lấy đối số dòng lệnh. Tôi đã thêm các thông tin sau:

"-source https://www.nuget.org/api/v2/ http://www.example.com/nuget" 

nhưng điều đó dường như không tạo nên sự khác biệt. Hoạt động này cũng có một trường để "xác định các giải pháp cần gói NuGet của họ được khôi phục" và tôi đã đặt biến đó thành biến số ProjectsToBuild được đặt khi bạn xác định bản dựng. Tôi không nhận được bất kỳ lỗi nào từ nuget.exe (ít nhất, không có gì mà tôi có thể nhìn thấy), nhưng việc xây dựng không thành công. Thật thú vị, nó nói rằng các không gian tên có liên quan không tồn tại, và không phải là các tài liệu tham khảo không thể được giải quyết. Bất kỳ ý tưởng?

+0

Tôi cũng nhận thấy cú pháp trên lệnh của bạn đã sai. nuget khôi phục nguồn "https://www.nuget.org/api/v2;https://www.myget.org/F/nuget". Nguồn của bạn cần được phân tách bằng dấu chấm phẩy. Điều này và ví dụ cấu hình của tôi nên giải quyết điều này. https://docs.nuget.org/consume/command-line-reference#restore-command – Jared

Trả lời

3

Tôi tin rằng những gì bạn cần làm là thêm tệp NuGet.config cấp giải pháp. Các tập tin cấu hình NuGet bị xích giống như web.config. Bạn có thể tìm thấy tài liệu here

NuGet tải đầu tiên NuGet.config từ vị trí mặc định, sau đó tải bất kỳ tập tin có tên NuGet.config bắt đầu từ thư mục gốc của ổ đĩa hiện hành và kết thúc trong thư mục hiện hành.

Nó sẽ trông tương tự như sau:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageRestore> 
     <!-- Allow NuGet to download missing packages --> 
     <add key="enabled" value="True" /> 
     <!-- Automatically check for missing packages during build in Visual Studio --> 
     <add key="automatic" value="True" /> 
    </packageRestore> 
    <packageSources> 
     <add key="nuget.org" value="https://www.nuget.org/api/v2/" /> 
     <add key="PrivateNugetName" value="http://your.nuget.server.com/nuget" /> 
    </packageSources> 
    <disabledPackageSources /> 
    <activePackageSource> 
     <add key="All" value="(Aggregate source)" /> 
    </activePackageSource> 
</configuration> 
Các vấn đề liên quan