2016-11-09 21 views
1

我有一個引用其他幾個項目的項目。它們都是使用x86作爲平臺構建的。這在我的桌面上編譯得很好。構建有效的csproj時,'AssemblyVersion'的值無效

在我的遠程VSO構建我總是得到錯誤

MSB3174:無效值「的AssemblyVersion」

當我編輯.csproj文件,我看沒有錯。我究竟做錯了什麼?

VSO建立參數是乾脆: /噸:發佈/p:ApplicationVersion=$(Build.BuildNumber)

我有沒有問題

參數使用$(Build.BuildNumber)等項目關於VSO構建日誌中看到(剪斷,爲清楚起見):

"C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe" "[App_PATH].csproj" 
/nologo 
/nr:false 
/t:"Clean" 
/dl:CentralLogger,[*snip dll path] 
/t:Publish 
/p:ApplicationVersion=DEPLOY.[App_Name]_2016.11.09.16 
/p:platform="x86" 
/p:configuration="DV1" 
/p:_MSDeployUserAgent="VSTS[*snip]" 

編輯:我試圖從本地命令提示符下運行的MSBuild,我也得到相同的行爲。不要責怪VSTS或其任何設置信息。

我只是希望我知道是看我的應用程序來糾正它。

+0

作爲構建的一部分,您是否有一個步驟來填充AssemblyVersion(通常在AssembliyInfo.cs中) - 也許使用不存在或構建服務器上不同的變量? – DaveShaw

+0

您能向我們展示您認爲沒有問題的部分嗎?你用這個命令行參數覆蓋了這個問題嗎?(http://stackoverflow.com/questions/40223153/how-do-i-pass-a-version-information-to-msbuild-within-visual-studio-團隊服務)? –

+0

構建之前有一個步驟來更新AssemblyInfo.cs文件中的AssemblyFileVersion,但是我a-驗證它正在正確地完成它的工作,並且b-我沒有它來運行構建,並得到相同的行爲。 AssemblyVersion的默認值:1.0.0。0和AssemblyFileVersion:1.0.0.0 –

回答

2

問題就在這裏:

/p:ApplicationVersion=DEPLOY.[App_Name]_2016.11.09.16 

版本格式不符合要求。請嘗試使用這種格式:1.2.3.4。

有關詳細信息,請參閱MSBuild Error MSB3174Version Constructor (String)

備註

版本參數只能包含成分主要,次要, 構建和修訂,按照這個順序,並全部由句點分隔。 必須至少有兩個組件,最多四個。前兩個 組件被認爲是主要和次要的。未指定的 組件的值未定義。版本號格式如下: 。可選組件顯示在方括號中('['和 ']'):major.minor [.build [.revision]]所有定義的組件必須是大於或等於0的整數。例如,如果主數 爲6,次要號碼爲2,內部版本號爲1,版本號 號碼爲3,則版本應爲「6.2.1.3」。

+0

事實證明,將軍選項卡中的內部版本號格式不正確。我使用這個值來糾正構建:$(Date:yyyy.MM.dd)$(Rev:.r) –