軟件版本編號是指為軟件設置版本號的方式。通常,版本號會以數(shù)字來訂,但也有不同的方式。windows,mac,各種app,現(xiàn)舉例如下:




版本控制比較普遍的 3 種命名格式 :GNU 風格的版本號命名格式、Windows 風格的版本號命名格式、.Net Framework 風格的版本號命名格式。
1. GNU版
主版本號 . 子版本號 [. 修正版本號 [. 編譯版本號 ]]
Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]
示例 : 1.2.1, 2.0, 5.0.0 build-13124
管理策略:
項目初版本時,版本號可以為0.1或 0.1.0,也可以為1.0或1.0.0。
當項目在進行了局部修改或bug修正時,主版本號和子版本號都不變,修正版本號加1;
當項目在原有的基礎上增加了部分功能時,主版本號不變,子版本號加1,修正版本號復位為0,因而可以被忽略掉;
當項目在進行了重大修改或局部修正累積較多,而導致項目整體發(fā)生全局變化時,主版本號加1;
編譯版本號一般是編譯器在編譯過程中自動生成的,我們只定義其格式,并不進行人為控制。
2. Windows版
主版本號 . 子版本號 [ 修正版本號 [. 編譯版本號 ]]
Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]]
示例: 1.21, 2.0
管理策略:
項目初版時,版本號為1.0或1.00;
當項目在進行了局部修改或bug修正時,主版本號和子版本號都不變,修正版本號加1;
當項目在原有的基礎上增加了部分功能時,主版本號不變,子版本號加1,修正版本號復位為0,因而可以被忽略掉;
當項目在進行了重大修改或局部修正累積較多,而導致項目整體發(fā)生全局變化時,主版本號加1;
編譯版本號一般是編譯器在編譯過程中自動生成的,我們只定義其格式,并不進行人為控制。
另外,還可以在版本號后面加入 Alpha、Beta、Gamma、Current、RC (Release Candidate)、Release、Stable 等后綴,在這些后綴后面還可以加入1數(shù)字的版本號。對于用戶來說,如果某個軟件的主版本號進行了升級,用戶還想繼續(xù)那個軟件,則發(fā)行軟件的公司一般要對用戶收取升級費用;而如果子版本號或修正版本號發(fā)生了升級,一般來說是免費的。
3. Net.Framework版
主版本號.子版本號[.編譯版本號[.修正版本號]]
Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]]
版本號由二至四個部分組成:主版本號、次版本號、內(nèi)部版本號和修訂號。主版本號和次版本號是必選的;內(nèi)部版本號和修訂號是可選的,但是如果定義了修訂號部分,則內(nèi)部版本號就是必選的。所有定義的部分都必須是大于或等于0的整數(shù)。應根據(jù)下面的約定使用這些部分:
Major:具有相同名稱但不同主版本號的程序集不可互換。例如,這適用于對產(chǎn)品的大量重寫,這些重寫使得無法實現(xiàn)向后兼容性。
Minor:如果兩個程序集的名稱和主版本號相同,而次版本號不同,這指示顯著增強,但照顧到了向后兼容性。例如,這適用于產(chǎn)品的修正版或完全向后兼容的新版本。
Build:內(nèi)部版本號的不同表示對相同源所作的重新編譯。這適合于更改處理器、平臺或編譯器的情況。 Revision:名稱、主版本號和次版本號都相同但修訂號不同的程序集應是完全可互換的。這適用于修復以前發(fā)布的程序集中的安全漏洞。程序集的只有內(nèi)部版本號或修訂號不同的后續(xù)版本被認為是先前版本的修補程序 (Hotfix) 更新。
版本號修改規(guī)則
(1)主版本號:當功能模塊有較大的變動,比如增加模塊或是整體架構發(fā)生變化。此版本號由項目決定是否修改。
(2)次版本號:相對于主版本號而言,次版本號的升級對應的只是局部的變動,但該局部的變動造成程序和以前版本不能兼容,或者對該程序以前的協(xié)作關系產(chǎn)生了破壞,或者 是功能上有大的改進或增強。此版本號由項目決定是否修改。
(3)修訂版本號:一般是Bug的修復或是一些小的變動或是一些功能的擴充,要經(jīng)常發(fā)布修訂版,修復一個嚴重Bug即可發(fā)布一個修訂版。此版本號由項目經(jīng)理決定是否修改。
(4)日期版本號:用于記錄修改項目的當前日期,每天對項目的修改都需要更改日期版本號。此版本號由開發(fā)人員決定是否修改。
(5)希臘字母版本號:此版本號用于標注當前版本的軟件處于哪個開發(fā)階段,當軟件進入到另一個階段時需要修改此版本號。此版本號由項目決定是否修改。