Gendarme có AvoidAssemblyVersionMismatchRule
với mô tả sau đây:Có lý do chính đáng nào để cho phép AssemblyVersion và AssemblyFileVersion khớp nhau không?
Quy tắc này sẽ kiểm tra rằng
[AssemblyVersion]
phù hợp với[AssemblyFileVersion]
khi xuất hiện cả hai bên trong một assembly. Việc có các số phiên bản khác nhau trong cả hai thuộc tính có thể gây nhầm lẫn khi ứng dụng được triển khai.
Ví dụ, quy tắc này sẽ cảnh báo trên của Microsoft System.dll
trong đó có các thuộc tính sau:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.50727.3053")]
Tôi không đồng ý với quy tắc Gendarme của. Tiếp theo nó sẽ làm cho nó không thể cho bạn sử dụng một chương trình phiên bản tương tự như được sử dụng bởi Microsoft, đó là
- cập nhật
AssemblyFileVersion
trên mỗi build, - thay đổi
AssemblyVersion
chỉ trên giao diện công cộng hoặc những thay đổi khác lớn, - chắc chắn rằng
AssemblyVersion
vàAssemblyFileVersion
chia sẻ một tiền tố chung,
và tôi nghĩ rằng chương trình phiên bản này là lý do tại sao nó thiết kế đã có thể thực hiện để phân biệt giữa AssemblyVersion
và AssemblyFileVersion
ngay từ đầu.
Tôi không thể đưa ra lý do tại sao buộc cả hai thuộc tính lắp ráp phải bằng nhau là một thực hành tốt, nhưng có thể bạn có thể! Tôi sẽ quan tâm đến ý kiến của bạn.
Nếu thực sự không có lý do chính đáng, tôi sẽ sớm đề nghị các nhà phát triển Gendarme để thay đổi quy tắc để
Quy tắc này sẽ kiểm tra rằng
[AssemblyVersion]
và[AssemblyFileVersion]
có một tiền tố chung, không có sản phẩm nào khi cả hai đều có mặt trong một hội đồng.
ý kiến == cộng đồng wiki –