2009-05-28 52 views
11

C#2008 SP1C#管理修訂號的有效方法

我想知道什麼是處理修訂號的最佳方法。

我一直以爲通常只有3個數字。 (主要,次要和錯誤修復)。

但是,我還在想知道內部版本號和版本號。

例如,在過去,我通常只使用3個數字。我有一些非常小的變化或錯誤修復,我會增加第三個數字(錯誤修復)。

因爲我是新手。通常在專業領域中做什麼?

非常感謝任何建議,

在我的AssemblyInfo文件,我有以下幾點:

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
// [assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.2.*")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

// 1.0.2 Added feature for detecting if a sound card is installed. 

回答

1

感謝您的所有建議。

我已決定使用以下內容。

我的項目有以下版本號:1.0.2.20。 1:主要變化 0:微小變化 2:Bug修復 20:顛覆版本號

所以我已經改變了我的assemblyinfo.c文件

[assembly: AssemblyVersion("1.0.2.20")] 

任何建議以下這個想法,我會很高興聽到。

非常感謝,

8
+0

我們曾經使用類似的方法,但發現用這種方法長期管理實際上是相當困難的。對於其中的一種,它不適合持續集成,並且會對增量構建造成嚴重破壞。最終,我們轉而使用SVN版本號作爲我們的內部版本號,從發佈/ bug跟蹤的角度來看更有意義。 – 2009-05-29 19:48:53

4

你要考慮你的版本組裝和文件不同。當您更改程序集版本號時,現有代碼無需重新編譯即可使用它,但這是非常困難的。我們僅在發生突變時更改程序集版本,以便我們輕鬆發佈小錯誤修復。

瞭解更多關於我們的Assembly Versioning政策。

+0

如果不更改Major和Minor版本號 – 2009-05-28 08:25:29

+0

這實際上並不正確,則.net框架(綁定)中的程序集視爲相同。當您使用強名稱時,會考慮整個版本號。 – 2009-05-28 15:32:42

+0

您的答案中的鏈接現在已損壞。我相信現在是[這一個](http://xheo.com/knowledge-base/deploylx/general/assembly-versioning)。 – ssarabando 2014-03-19 13:41:37

10

MSDN

  • 生成:在版本號的差值表示的 相同的源進行重新編譯。這將是 ,因爲處理器, 平臺或編譯器的變化。

  • 修訂:具有相同名稱,主要版本號和次要版本號的組件 但不同的修訂版旨在與 完全互換。這個 將適用於修復先前發佈的 組件中的安全漏洞 。

菲爾哈克有.NET版本系統的nice deconstruction,但在實踐中,我不認爲他真的很擔心我的經驗問題,因爲在.NET/MS版本系統是唯一真正使用技術爲了調試/支持/跟蹤目的,公共和項目管理通常是日期或基於製造銷售版本號。我工作過的每個.NET項目都受到「X.Y. *」的控制,即我們希望手動控制主要和未成年人,但讓系統控制構建和修訂。

2

我們使用兩個增量的Bug修復號碼。奇數意味着發佈的小錯誤修復,甚至數字意味着修復錯誤。顯然這在一些企業中是常見的,即我所在的企業。

這個想法是識別意外發布,並以某種方式我喜歡這個想法。做事情,以便您輕鬆看到錯誤的事情。這並不是說奇數必然是非偶然的釋放,只是它具有相當高的概率。

+0

難道不是相反嗎?因爲系統中的.0代表開發版本,但1.0.0版本可能是真正的版本,不是嗎? :D除此之外,我喜歡這個系統。說得通。我總是不確定何時增加數字(因爲太早意味着有一個「錯誤」的版本,太晚意味着你不能提前測試新的版本號)。 – OregonGhost 2009-05-28 08:19:55

5

我認爲保羅亞歷山大的回答是正確的,但我想下面的備註添加到您的AssemblyInfo文件:

如果使用1.0.2.*記得的最後一位(由*代替)是一個隨機編號如果你今天晚上建立了1.0.2. *,並且你明天早上再建立它,那麼第二個版本的版本號可能會比你之前的版本低。

相關問題