2010-12-05 49 views
4

我知道的Visual Studio有沒有辦法遞增,人們會想到辦法的版本號,但它支持randomizing the build number我的Visual Studio自動遞增內部版本號語法有什麼問題?

AssemblyInfo.cs文件包含:

// 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.*")] 
[assembly: AssemblyFileVersion("1.0.*")] 

然而它給了,似乎什麼對我來說,無意義的結果(甚至允許Visual Studio的僞隨機版本號): alt text

所以更簡單的問題是:

我爲了使它正常工作而投入AssemblyInfo.cs

MSDN(重新格式化爲清晰起見):

您可以指定所有這些值,也 可以接受默認的內部版本號, 版本號,或兩者通過使用 星號(*) 。例如,

[assembly:AssemblyVersion("2.3.25.1")] 

指示2作爲主要版本,作爲3 次要版本25作爲構建 數量,並且1作爲修訂號。 版本號例如

[assembly:AssemblyVersion("1.2.*")] 

指定1作爲主要版本,2作爲 次要版本,並接受 缺省構建和版本號。甲 版本號例如

[assembly:AssemblyVersion("1.2.15.*")] 

指定1作爲主要版本,2作爲 次要版本,15作爲構建 號碼,並接受默認 修訂號。

默認內部版本號每天增加 。默認版本號 是隨機的。

我認爲這意味着該版本號是:

[1.0.0.0] 
major.minor.build.revision 

[1.0.0.*] 
major.minor.build.[random] 

[1.0.*] 
major.minor.[daynumber].[random] 

回答

12

我99%肯定,問題你」重新體驗是由這條線引起的:

[assembly: AssemblyFileVersion("1.0.*")] 

美中不足的是,的Visual Studio不支持自動遞增AssemblyFileVersion,只有AssemblyVersion所以你的其他代碼應該沒問題。嘗試簡單地評論第二行,看看你是否得到了你期望的結果。所有文件和產品的版本信息應該是相同的。

我不知道這是正式記錄的位置(除了在「項目屬性」下的「組件信息」對話框中爲「文件版本」字段輸入星號時收到的錯誤消息),但它在我有權訪問的每臺機器上都能正常工作。

如果您完全厭倦了Visual Studio在離開自己的設備時發生的事情(您提到了它的僞隨機數的愚蠢性),請嘗試使用加載項this little gem。它會改變你的生活。

5

該屏幕截圖顯示使用shell屬性表擴展處理程序,該處理程序顯示嵌入在大多數EXE和DLL文件(包括.NET中)中的非託管版本資源。不幸的是,從Vista開始,該處理程序不再在該資源中顯示可選字段。 ProductVersion字段是標準字段,但而不是 [AssemblyVersion]。你必須在AssemblyInfo.cs中添加相應的屬性。例如:

[組件:AssemblyInformationalVersion( 「1.2.3.4」)]

不是一個偉大的名稱匹配,很遺憾。當它缺失時,編譯器將複製[AssemblyVersion]的值,這就是星號的結尾。

編譯器確實在資源中發出額外的字段。您可以使用文件+打開+文件中看到它,請選擇您的裝配,打開版本節點並雙擊資源#1:

alt text

這是一個從產生:

[assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyInformationalVersion("1.2.3.4")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

它的存在,你只是無法在資源管理器中看到。 Bummer,希望有一天他們會解決這個問題。還要注意生成的[AssemblyVersion],版本號是18404.它不是隨機的,我在上午10點13分建立了這個EXE。那是午夜以來的18404 * 2秒。