2012-05-17 60 views
34

Tôi đang sử dụng NuGet Package Restore. Tôi muốn chỉ định các nguồn tùy chỉnh trong quá trình xây dựng máy chủ TFS.Chỉ định nguồn NuGet cho máy chủ xây dựng để sử dụng với NuGet Package Restore?

Tệp NuGet.targets trong thư mục '.nuget' ẩn nói rằng bạn có thể chỉ định kho lưu trữ nguồn hoặc nó sẽ quay trở lại NuGet.config trong% APPDATA% \ NuGet \ NuGet.config.

Tuy nhiên, NuGet.config cũng nằm trong thư mục '.ugug' ẩn. Tôi giả sử rằng nếu bạn không chỉ định các kho lưu trữ nguồn trong NuGet.targets thì nó sẽ quay trở lại NuGet.config trong thư mục '.nuget' ẩn. Điều này dường như không đúng.

Bất kỳ ý tưởng nào?

Trả lời

6

Theo pranavkm, một trong những nhà phát triển NuGet, tại thời điểm này viết NuGet Package Restore sẽ không sử dụng NuGet.config trong ẩn '.nuget' thư mục nguồn. Nó chỉ được sử dụng tại thời điểm này cho một thiết lập giải pháp cụ thể (để bỏ qua các ràng buộc kiểm soát nguồn). Ông nói rằng nó là trên radar cho đội NuGet để tận dụng tất cả các khía cạnh của NuGet.config nhưng nó giữ nhận được bumped trong ưu tiên.

+3

FYI, cập nhật: NuGet.configs phân cấp được hỗ trợ từ v2.1. Xem http://docs.nuget.org/docs/release-notes/nuget-2.1 –

+1

Đối với những người tìm kiếm trên Internet trong tương lai, phiên bản dòng lệnh của "nuget.exe" là -Source "https: //www.nuget. org/api/v2 /; http: // myother source/myrepository/" – granadaCoder

18

Nếu bạn bật khôi phục gói, bạn sẽ tìm thấy tệp NuGet.targets MSBuild trong thư mục $ (SolutionDir) \. Nuget.

Bạn có thể đặt nguồn gói bằng cách sửa đổi thành phần < GóiSources > "" </PackageSources >.

Ví dụ:

<!-- Package sources used to restore packages. By default will used the registered sources under %APPDATA%\NuGet\NuGet.Config --> 
<PackageSources>"http://packages.nuget.org/api/v2/;http://myget.org/F/myfeed/"</PackageSources> 
+4

Điều đó không trả lời được câu hỏi nào cả. Tôi đã chỉ ra rằng bạn có thể sử dụng NuGet.targets để xác định các nguồn. Câu hỏi đặt ra là về NuGet.config và liệu nó có được sử dụng hay không. –

24

Với phiên bản hiện tại của NuGet, bạn có thể chỉ định kho lưu trữ tùy chỉnh trong tệp NuGet.config của giải pháp và bật khôi phục gói trong khi xây dựng. Có tập tin NuGet.config này cho phép chúng tôi tự động khôi phục gói từ kho lưu trữ nội bộ dưới một TFS xây dựng mà không bất cứ hành động khác trong xây dựng định nghĩa:

<configuration> 
    <solution> 
    <add key="disableSourceControlIntegration" value="true" /> 
    </solution> 

    <packageSources> 
    <add key="Internal" value="http://MyInternalRepository/nuget" /> 
    </packageSources> 

    <packageRestore> 
    <add key="enabled" value="True" /> 
    </packageRestore> 

</configuration> 

Lưu ý: Quá trình xây dựng mặc định TFS2013 của Templates đã thực hiện NuGet Package Restore công việc mà không bất kỳ cấu hình đặc biệt nào được nêu ở đây: http://docs.nuget.org/docs/reference/package-restore-with-team-build

+0

Đó là định nghĩa thú vị" không có bất kỳ cấu hình đặc biệt nào ". Trong thực tế, việc thực hiện Khôi phục tài liệu có thông qua quy trình xây dựng tùy chỉnh - không có gì để làm với Mẫu quy trình xây dựng. Không phải là bất kỳ điều này trả lời câu hỏi của OP. – bornfromanegg

+1

@ user1158174 nếu bạn nhìn vào phần đầu của bài viết trên trang đó, nó nói: 'Đối với Team Foundation Build 2013 tại chỗ và Visual Studio Online (trước đây là Team Foundation Service), mặc định Build Process Templates đã thực hiện Gói NuGet Khôi phục quy trình làm việc mà không cần bất kỳ cấu hình đặc biệt nào.Thông tin sau đây chỉ áp dụng cho Team Foundation Build 2012 trở về trước, hoặc để xây dựng các Process Process đã được tùy chỉnh và có chức năng NuGet Restore bị xóa.', vâng, TFS 2013 đã tự động thực hiện 100% (chúng tôi thực sự sử dụng nó trong Công ty). – julealgon

+0

THANK YOU SO MUCHCH – Pharylon

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