2011-07-11 36 views
5

Bạn đã thực hiện phương pháp nào để điều phối các thay đổi đối với phiên bản và Bản quyền đối với các nhóm hội đồng?Làm cách nào để phối hợp thông tin phiên bản lắp ráp trong cây của nhiều dự án C#?

Tôi có một cây gồm nhiều csprojs mỗi tệp có tệp AssemblyInfo riêng. Là một phần của quá trình xây dựng của tôi, tôi muốn đặt năm và phiên bản bản quyền. Dường như các tùy chọn sau có thể có sẵn nhưng sửa đổi tập tin là người duy nhất tôi đã nhìn thấy cho đến nay:

  • Sửa đổi tất cả các file thông qua kịch bản
  • Bao gồm tài nguyên có ngày tháng (macro, một lớp singleton với công chúng biến tĩnh)
  • Override AssemblyVersion trên dòng lệnh (-DAssemblyVersion = "1.0.0.1"?) biến
  • Môi trường tham khảo ([assembly: AssemblyFileVersion("${ENV.VERSION")])

tôi đang sử dụng để giữ cho nguồn t ree sạch của các tập tin được tạo ra trong Java/C++ thông qua các tham số dòng lệnh, định nghĩa và tập trung tất cả các đặc tả phiên bản trong một tập tin duy nhất.

Bạn sử dụng phương pháp nào để giữ cho các phiên bản được đồng bộ hóa và quản lý?

Cảm ơn

Peter

Trả lời

5

Trong thư mục trên cùng, tôi đặt một tệp CommonAssemblyInfo.cs chứa ... công cụ phổ biến, chẳng hạn như bản quyền và FileVersion. Tệp này chỉ chứa một số thuộc tính mặc định và được tạo lại bởi một tập lệnh (một tệp .bat đơn giản) trên máy chủ xây dựng, Hudson trong trường hợp của tôi. Loại bỏ các thuộc tính phổ biến này trong mỗi dự án AssemblyInfo.cs.

Trong mỗi dự án trong giải pháp, tôi thêm tệp này. nhưng sử dụng "Thêm làm liên kết" - có sẵn trong trình đơn thả xuống của nút "Thêm" khi bạn thêm tệp hiện có. nghĩa là tất cả các dự án chỉ chứa một tham chiếu đến cùng một tệp, do đó, chỉ có một tệp để cập nhật.

0

Bất kể con đường bạn đi để thực sự cập nhật số phiên bản, bạn có thể sử dụng một AssemblyInfo.cs tập tin cá nhân để xác định một phiên bản chia sẻ.

Tạo tệp ở cấp độ nào đó trên các dự án khác, về cấu trúc, sau đó thêm tệp đó vào tất cả các dự án (từ trong Visual Studio), nhưng khi thực hiện như vậy hãy đảm bảo chọn 'Thêm làm liên kết'.

Tôi đã sử dụng tác vụ MSBuild để xử lý việc cập nhật, tôi cũng không thể nghĩ về nó - bạn sử dụng công cụ xây dựng nào?

+0

Chúng tôi đang sử dụng Jenkins hiện tại và đang sử dụng hai cách tiếp cận: 1) msbuildtask cập nhật nhiều tệp AssemblyInfo. 2) CommonAssemblyInfo.cs liên kết với nhiều dự án được sửa đổi bởi một kịch bản xây dựng. –

0

Về mặt lý thuyết, bạn có thể có một tệp lắp ráp duy nhất. Chỉ cần liên kết tệp trong tất cả các dự án khác: Thêm tệp hiện có >> tệp liên kết thay vì thêm (nút thả xuống)

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