2012-02-07 4 views
7

Tôi đã bắt đầu tạo gói NuGet cho một số dự án phụ thuộc thường xuyên mà chúng tôi đã sử dụng để sử dụng svn: externals cho trong các giải pháp ASP.NET của chúng tôi. Tôi đang lưu trữ các tệp .nupkg trong một thư mục mạng và sử dụng vị trí thư mục đó làm nguồn cấp dữ liệu NuGet.Gói NuGet tự tạo nên được đặt trong điều khiển phiên bản?

Tôi không chắc chắn tệp nào sẽ được đặt trong điều khiển phiên bản và vị trí. Bạn có đặt cả tệp .nuspec AND .nupkg vào kho lưu trữ của mình không? Làm cả tệp .nuspec và .nupkg đều nằm trong điều khiển phiên bản của dự án? Tôi nghĩ vì tập tin .nuspec tạo tập tin .nupkg, bạn chỉ cần tập tin đó trong điều khiển phiên bản. Nhưng, tôi cũng nghĩ rằng có thể là một ý tưởng hay khi tạo thư mục mạng, mà tôi đang sử dụng làm nguồn cấp dữ liệu NuGet, một bản repo. Sau đó, tôi có thể kiểm soát các tập tin .nupkg.

Một số phương pháp hay cho phiên bản kiểm soát các gói NuGet được tạo ra là gì?

Trả lời

5

Tôi đang ở cùng vị trí của bạn. Để phù hợp với ý tưởng rằng bạn không cam kết bất kỳ tệp nào mà bạn có thể xây dựng, các tệp .nuspec của tôi sẽ kiểm soát phiên bản, nhưng các tệp .nupkg thì không.

Vì số phiên bản được tích hợp vào tên tệp .nupkg, bạn có thể có phiên bản riêng biệt của gói trong kho lưu trữ cùng một lúc. Bạn cần sử dụng biểu mẫu <version>$version$</version> trong tệp .nuspec và đặt phiên bản lắp ráp thành tự động tăng hoặc chỉ thay đổi số phiên bản theo cách thủ công mỗi lần. Sau đó, bạn có thể tạo thẻ Subversion trên số phiên bản đó, để bạn có thể quay lại nguồn cho phiên bản gói cụ thể nếu cần.

Để cho phép các dự án khách hàng tự động kết hợp các sửa lỗi nhỏ trong gói của chúng tôi, chúng tôi sẽ kích hoạt NuGet Package Restore trong các dự án khách và xuất bản các gói với số phiên bản cố định, như "1.2". Khi có một sửa lỗi đơn giản cho gói, chúng tôi sẽ tái xuất bản với cùng số phiên bản đó. Điều đó sẽ ghi đè lên phiên bản trước đó trong kho lưu trữ; các dự án khách hàng sau đó sẽ nhận được bản cập nhật khi họ khôi phục các gói trong bước xây dựng.