我在Visual Studio Online(不是XAML構建定義)中使用新的腳本化構建功能,並且試圖讓構建版本號包含最新的Git Commit ID目標存儲庫使用Build Number格式。Build.SourceVersion在VSO中是空白vNext構建
我使用下面的生成數字格式:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion)
這導致1.0.1234.
生成版本號 - 即其中的SourceVersion值爲空,排隊構建時導致錯誤的VSO。我也嘗試通過在Build.
前加上相同的結果來限定變量。爲了測試,我已經改變了版本號的格式如下:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceBranch)
這正確地導致的1.0.1234.refs_heads_master
我已經使用Predefined Variables參考和Build.SourceVersion被列爲全局變量的值。
我做錯了什麼,我有沒有遇到過錯誤,或者是有人設計,並且在構建隊列時不可用?如果這是專門設計的,是否有任何方法可以自動在構建數字格式中包含簡短的Git提交ID?
這是我看到的時候我不明確指定一個Git的commitid錯誤:
400:內部版本號格式字符串 $(MajorVersion)。$(MinorVersion)。$(BuildId)。$(SourceVersion)生成 內部版本號0.1.1。其中包含無效字符,太長或太長,或以'。'結尾。版本號的最大長度爲255個字符。不允許的字符包括'''','/',':', '<','>','\','|','?','@'和'*'
我能達到什麼樣的你用$(MajorVersion)。$(MinorVersion)。$(Build.BuildId)。$(Build.SourceVersion)'來描述。已經在VSO和TFS 2015內部進行過驗證。輸出如下所示:'1.0.20.41f2983578f720695227a7a8a41ed3d7437efc30'。你確定這不是一個導致你身邊奇怪行爲的錯字嗎? –
@YanSklyarenko,我總是得到 「無法展開在建數字格式(類型InvalidMacroInBuildNumberException)指定的宏$(Build.SourceVersion)」 異常,如果我使用$(MajorVersion)$(MinorVersion)$(Build.BuildId) $(Build.SourceVersion)來定義內部版本號的格式。另外,SourceVersion變量是包含在此版本中的最新版本控制變更。的commitid或變更集編號(CS1234,例如),其不應當是這樣的「41f2983578f720695227a7a8a41ed3d7437efc30」。我錯過了重要的事情嗎? –
@Vicky,嗯,我想這是另一回事。看起來像那個異常('InvalidMacroInBuildNumberException')意味着內部版本號格式無效。我的意思是,它期望Major.Minor.Build.Revision都是數字,而不是那些ID和散列。 $(Build.SourceVersion)的宏部分起作用,但不能在內部版本號中使用它。你的其他評論 - 在Git中提交ID是那個長哈希,'CS1234'是TFVC變更集的格式。 –