軟體版本號主要標識了軟體的版本,通過其可以了解軟體、類別庫檔案的當前版本,使得軟體版本控制有所依據,
我們就Windows系統和.NET Framework的編號規則來看,軟體版本號的定義結構一般是這樣:主版本號.子版本號.編譯版本號.修正版本號
我們也可以在專案屬性上可以看到相關設定的界面,對應的英文名稱分別為:major.minor.build.revision
Major:具有相同名稱但不同主版本號的程式集不可互換,例如,這適用于對產品的大量重寫,這些重寫使得無法實作向后兼容性,當有極大的更新時,會增加major的版號,
Minor:如果兩個程式集的名稱和主版本號相同,而次版本號不同,這指示顯著增強,但照顧到了向后兼容性,例如,這適用于產品的修正版或完全向后兼容的新版本,而當有大更新,但不至于更新major時,會更新minor的版號,
Build:內部版本號的不同表示對相同源所作的重新編譯,這適合于更改處理器、平臺或編譯器的情況,若更新比較小,例如只是除蟲(bug fixing),則會更新build的版號,
Revision:名稱、主版本號和次版本號都相同但修訂號不同的程式集應是完全可互換的,這適用于修復以前發布的程式集中的安全漏洞,程式集的只有內部版本號或修訂號不同的后續版本被認為是先前版本的修補程式 (Hotfix) 更新,當在同一個Build下需要重新編譯,那么就需要增加Revision即可,
所以一般的版本資訊設定看起來應該是這樣:
1
1.1
1.1.*
1.1.1
1.1.1.*
1.1.1.1
在設定頁面里有一個是程式集版本號,一個是檔案版本號,檔案版本號主要用來為檔案做標識,而程式集版本號用于CLR識別使用,
在我們確定了主版本號和子版本號后,編譯版本號和修正版本號就需要在每次編譯的時候去變動了,這樣在程式測驗、排錯時才能快速定位到使用的是哪個編譯出的版本,而不僅僅是通過檔案創建時間去辨別,
在.NET里面提供了一個方法去自動對編譯版本號和修正版本號進行設定的方法,
首先我們需要知道通過界面設定的版本資訊是存盤在專案里的AssemblyInfo.cs檔案里的,
默認的設定是這樣,
1 [assembly: AssemblyVersion("1.0.0.0")] 2 [assembly: AssemblyFileVersion("1.0.0.0")]
我們需要將主版本號和子版本號填寫好,因為這部分是不會頻繁變動的,而編譯版本使用通配符*代替,并將檔案版本資訊注釋掉,設定起來像這樣,
1 [assembly: AssemblyVersion("1.0.*")] 2 //[assembly: AssemblyFileVersion("1.0.0.0")] //如果需要自動增加版本號,需要注釋這句代碼,只用上面的一行
這樣設定后生成的規則就是:編譯版本號是自2000年1月1日以來的天數,而修正版本號會是當天自午夜零點以來的秒數除以2所得的值,
修改侯可能會提示:指定的版本字串包含通配符,這與確定性不兼容,請洗掉版本字串中的通配符,或禁用此編譯的確定性
此時用記事本打開該專案的csproj檔案,搜索Deterministic,將對應的選項由True改為False,或者直接洗掉該配置項即可,
<Deterministic>false</Deterministic>
我們看一個編譯后的結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/275641.html
上一篇:Autofac 框架初識與應用
下一篇:c# GDI+ 繪制醫療圖表
