2009-02-22 18 views

Trả lời

7

Ưu điểm của thời gian là bạn nhận được cả số phiên bản tăng mã hóa dấu thời gian.

Lợi thế của việc sử dụng nhiều số truyền thống hơn là mọi người dễ hiểu hơn. Chúng ta đều biết gần như "v2.1" có nghĩa là gì.

Nói chung, tôi khuyên bạn nên sử dụng thời gian vì thông tin bổ sung hữu ích. Lợi thế của các số khác chỉ dành cho tiếp thị và bạn vẫn có thể làm điều đó.

Ví dụ: tại sao không có cả hai, a la "v2.1.20090214". Bây giờ bạn có tiếp thị trong phần major.minor và tiện ích trong phần "xây dựng".

+6

Nếu bạn sử dụng ngày làm số phiên bản, vì mục đích thương mại, hãy sử dụng định dạng YYYYMMDD. Nó là người duy nhất mà mọi người có thể đọc một cách rõ ràng, và có lợi thế là sắp xếp theo thứ tự đúng. – Evan

+1

(Đối với sự đa dạng trong số chúng ta, một số quốc gia ghi ngày tháng của chúng theo định dạng MM-DD-YYYY, và phần lớn phần còn lại của từ được viết theo định dạng DD-MM-YYYY hoặc YYYY-MM-DD.) – Evan

+9

Lưu ý rằng trên Win32 (và do đó .NET), số phiên bản có giới hạn 16 bit cho mỗi thành phần, vì vậy 20090214 là một thành phần không thể thực hiện được. –

3

Tôi chỉ cần rời khỏi AssemblyVersion tại "1.0. *" Và xóa bất kỳ AssemblyFileVersion nào.

Sau đó tôi có thể tăng các số phiên bản Chính và Nhỏ như có vẻ thích hợp và để bản dựng và sửa đổi cơ sở DateTime mặc định được đặt tự động.

Trừ khi bạn có các công cụ xây dựng thay thế kiểm soát số xây dựng và sửa đổi theo một số chương trình khác, tôi không thấy lợi thế thực nào để đặt chúng theo cách thủ công.

+0

Tôi đang làm chính xác điều tương tự. –

1

Tôi sử dụng một số tập lệnh xây dựng cập nhật bản sửa đổi của mình dựa trên bản sửa đổi SVN. Điều đó làm cho nó tầm thường để theo dõi một dll trở lại mã nguồn tạo ra nó.

Thời gian phức tạp hơn; bạn phải bắt đầu tìm trong ngăn lịch sử - nơi mà hầu hết các công cụ kiểm soát nguồn đều có cơ sở "sửa đổi".

0

Tại sao nên chọn? Bạn có thể sử dụng một định dạng như Major.Minor.YYMMDD.Revision và tận dụng tối đa cả hai thế giới.

Chỉnh sửa Như đã nêu trong các nhận xét đôi khi phạm vi của từng trường bị hạn chế. Trong trường hợp đó bạn có thể sử dụng Major.Minor.YMMDD.Revision.

Hy vọng bạn sẽ thay đổi phiên bản nhỏ ít nhất 10 năm một lần!

+2

hãy sửa tôi nếu tôi sai, nhưng theo MSDN tại "http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.aspx" mỗi thành phần phải là một số từ 0 đến 65535. YYMMDD sẽ quá lớn. "Major.Minor.YYYY.MMDD" sẽ phù hợp nhưng là ackward :-( – angrifel

0

Một bất lợi của việc đánh số phiên bản dựa trên ngày là nhận xét tiêu cực nhận xét của phần mềm cũ.

Mặc dù, tôi vẫn sử dụng nó vì nó phù hợp với các dự án của tôi rất tốt.

+1

Không phải lúc nào cũng là một bất lợi. Đó là nhận thức tiêu cực có thể được sử dụng để bán phiên bản mới của bạn. –

2

Sử dụng thời gian/ngày có thêm một (ngoài những người đã đề cập trong câu trả lời khác ở đây) bất lợi:

nếu bạn đội dev được lan truyền trên các múi giờ khác nhau, bạn sẽ không bao giờ chắc chắn mà một trong hai phiên bản được xây dựng cách nhau một giờ là phiên bản mới hơn. Trừ khi bạn cũng phiên bản múi giờ hoặc bắt buộc ngày/giờ GMT.

4

Lợi thế của việc sử dụng lược đồ major.minor.revision là ngữ nghĩa.Có một phương pháp để cập nhật từng số này:

Thay đổi số lớn có nghĩa là phiên bản mới không tương thích với phiên bản cũ và bất kỳ phụ thuộc nào của phiên bản trước sẽ yêu cầu thay đổi mã để nâng cấp lên gói mới.

Thay đổi số lượng nhỏ có nghĩa là phiên bản mới tương thích ngược với phiên bản trước nhưng có cải tiến đáng kể so với phiên bản trước.

Số sửa đổi được cập nhật bất cứ khi nào một sửa lỗi được áp dụng cho bản dựng sao cho nó không mang lại thay đổi về tính tương thích hoặc giới thiệu các tính năng mới hơn.

Trong khi chỉ định phụ thuộc, bạn có thể nói rằng bạn phụ thuộc vào foo-1.0.0 - foo-1.99.999 và yên tâm rằng bạn sẽ không kết thúc với việc nâng cấp gói vi phạm ứng dụng của bạn.

Nếu bạn bắt đầu với phiên bản phụ thuộc cao hơn, giả sử, foo-1.4.22, bạn nên chỉ định phụ thuộc là foo-1.4.22 - foo-1.99.999, để bạn không kết thúc cài đặt phiên bản cũ hơn 1.4.x, có thể có một số chức năng/nâng cao bị thiếu trong phiên bản.

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