2017-05-22 36 views
0

我們正在使用TFS構建,當我在TFS構建中構建項目時,它還會創建一個安裝文件。將安裝文件複製到TFS中的版本號所指定的文件夾中

例如,我的應用程序版本V1.2.3是(從assembly.cs其)安裝文件的位置爲C:\ MyProject的\ SETUP \ SETUP.EXE

嗯,我想複製此設置EXE到以下文件夾

C:\產品\產品A \ V1.2.3

所以我只需要得到版本號來創建一個名爲 「V1.2.3」 文件夾中。對於複製和爬行,我可以創建一個批處理文件,但我不知道如何獲取版本號。 TFS有一些變量,例如Build.SourceVersion ,但這些變量不會給我產品的版本號。

我該怎麼做這件事?

+0

對於這一點,你必須自己寫劇本。或者將其設置爲環境變量並稍後使用(然後可以通過tfs(如%versionnumber%)使用它),或者必須編寫一個完整的腳本並將其複製到目標文件夾。 – Greaka

+0

@Greaka謝謝你的回覆,有沒有關於它的任何文檔? – ertan2002

+0

我不知道。我們有類似的問題,並通過調用「%dataapath%ResHacker.exe」-extract%exepath%,%inputfile%,VERSIONINFO,||解決它。 goto:error'在批處理文件 – Greaka

回答

1

你必須寫一個腳本來做到這一點。

1)PowerShell腳本從當前構建

Write-Verbose -verbose "##vso[build.updatebuildnumber]$versionWithBuildId" 

讀取的AssemblyInfo.cs

$myAssemblyVersion = major.minor.patch -> Read from assembyInfo.cs 
$versionWithBuildId = '{0}.{1}' -f $myAssemblyVersion, $Env:BUILD_BUILDID 

2的內部版本號)更新TFS內部版本號碼後,您可以使用「複製文件「或」發佈工件「步驟。

用 「複製文件」

Target Folder = "C:\products\producta\$(Build.BuildNumber)" 

隨着 「發佈神器」

Artifact Name = "$(Build.BuildNumber)" 

Path = "C:\products\producta" 
+0

謝謝你的回覆,它給了我這個想法,我寫了一個腳本來獲取版本號並複製到我想要的地方。 – ertan2002

相關問題