Như với bất cứ điều gì, nó phụ thuộc. Bạn đã xem xét việc sử dụng một kho lưu trữ gói CI riêng biệt, nơi mọi cam kết với mô-đun lõi tạo ra một gói CI?
IMO thách thức lớn nhất là gói phiên bản
, vì NuGet không hỗ trợ SemVer chưa đầy đủ (ví dụ: các phiên bản trước + số bản dựng)
.
EDIT: nuget.org hiện hỗ trợ các phiên bản gói SemVer 2.0. Xem thông số này: https://github.com/NuGet/Home/wiki/SemVer2-support-for-nuget.org-%28server-side%29
Sử dụng SemVer đúng cách. Bạn thường không biết số phiên bản phát hành trả trước, vì vậy phiên bản gói CI của bạn tiếp tục từ bản phát hành ổn định mới nhất. Các gói CI như vậy sẽ được xem xét trước khi phát hành.
Ví dụ: 2.2.0-CI201209140650
(là phiên bản CI được chụp vào ngày 2012-09-14 lúc 06:50 cho bản phát hành 2.2.0 sắp tới) < - lưu ý: phiên bản này vẫn có thể thay đổi, nhưng luôn có một đường dẫn cập nhật.
Nếu bạn áp dụng SemVer v2.0.0, bạn thậm chí có thể áp dụng ví dụ sau: 2.2.0-CI.2012.09.14.06.50
.
Lưu ý quan trọng: nuget.org (và bởi mức độ bất kỳ máy chủ NuGet khác/dịch vụ trên mạng như MyGet hoặc VSTS) không hỗ trợ nhiều phiên bản gói chỉ khác nhau bằng cách xây dựng siêu dữ liệu!
Điều này đã làm việc cho tôi bằng cách sử dụng các ràng buộc này (và một số cấu hình xây dựng TeamCity phù hợp). Vì vậy, trong ngắn hạn, đó là những rắc rối:
- thích versioning
- nhắc nhở để lựa chọn đúng đắn nguồn gói (giữ pkgs CI của bạn tách từ trước giải phóng và phát hành, mặc dù về mặt kỹ thuật gói CI của bạn là được phiên bản dưới dạng bản phát hành trước)
- nâng cấp từ pkg CI lên bản phát hành trước có thể là vấn đề nếu thẻ trả trước được sắp xếp chuỗi cao hơn "CI" (ví dụ: "Alpha"). Trong trường hợp này: gỡ cài đặt gói "CI" theo sau là gói cài đặt "Alpha".
Hy vọng điều này sẽ hữu ích!
Nguồn
2012-09-14 04:56:43
SourceTree sẽ tự động phát hiện các mô-đun con đó chứa các chỉnh sửa không được cam kết và nhắc bạn cam kết chúng bất kỳ khi nào bạn thực hiện dự án mẹ. –
Tôi tự hỏi những gì bạn kết thúc với?Chúng tôi nghĩ rằng đi từ Nuget để git submodules.Tôi không thích rằng gói nuget của chúng tôi không chứa các tập tin pdb (để giảm kích thước) .Debugging là phức tạp. Làm thế nào nó sẽ được tốt đẹp để có tất cả các dự án trong một giải pháp mà bạn có thể bước vào khi gỡ lỗi. Một vấn đề tiềm năng khác là kích thước lưu trữ. Chúng tôi sử dụng mối quan hệ sonatype và cần phải có chính sách lưu giữ gần như vô thời hạn đối với các gói vì một số gói có thể được yêu cầu nếu chúng 10 tuổi. Bởi vì những gói phụ thuộc chéo nuget lưu trữ/gói sẽ có dlls lặp đi lặp lại. Sợ nó sẽ đòi hỏi rất nhiều không gian – user1325696