将安装文件复制到名为TFS中版本号的文件夹中

将安装文件复制到名为TFS中版本号的文件夹中,tfs,versioning,setup-project,Tfs,Versioning,Setup Project,我们正在使用TFS build,当我在TFS build中构建项目时,它还会创建一个安装文件 例如,我的应用程序版本是V1.2.3,它来自assembly.cs。安装文件的位置是C:\myproject\setup\setup.exe 我想把这个setup exe复制到下面的文件夹中 C:\products\producta\V1.2.3 所以我只需要获得版本号就可以创建一个名为V1.2.3的文件夹。对于复制和编辑,我可以制作一个批处理文件,但我不知道如何获取版本号。TFS有一些变量,例如Bui

我们正在使用TFS build,当我在TFS build中构建项目时,它还会创建一个安装文件

例如,我的应用程序版本是V1.2.3,它来自assembly.cs。安装文件的位置是C:\myproject\setup\setup.exe

我想把这个setup exe复制到下面的文件夹中

C:\products\producta\V1.2.3

所以我只需要获得版本号就可以创建一个名为V1.2.3的文件夹。对于复制和编辑,我可以制作一个批处理文件,但我不知道如何获取版本号。TFS有一些变量,例如Build.SourceVersion 但是这些变量并没有给出产品的版本号


我怎样才能做这件事?

你必须写一个脚本来做这件事

1个Powershell脚本,用于从assemblyInfo.cs读取内部版本号

$myAssemblyVersion = major.minor.patch -> Read from assembyInfo.cs
$versionWithBuildId = '{0}.{1}' -f $myAssemblyVersion, $Env:BUILD_BUILDID
2从当前版本更新TFS内部版本号

Write-Verbose -verbose "##vso[build.updatebuildnumber]$versionWithBuildId"
之后,您可以使用复制文件或发布工件步骤

复制文件

使用发布工件


为此,您必须自己编写脚本。或者在某个点将其设置为环境变量,稍后再使用,然后您可以通过tfs(如%versionnumber%)使用它,或者您必须编写一个完整的脚本,并将其复制到目标文件夹。@Greaka谢谢您的回复,是否有相关文档?我不知道。我们有一个类似的问题,并通过调用%datapath%ResHacker.exe-extract%exepath%,%inputfile%,VERSIONINFO,,| | goto:批处理中的错误解决了它file@Greaka,在使用此命令后,是否应该像使用构建变量一样直接使用VERSIONINFO?例如C:\products\producta\$versioninfo,这只是从exe文件中提取versioninfo的调用。谢谢你的回复,它给了我这个想法,我写了一个脚本来获取版本号,并复制到我想要的地方。
Target Folder = "C:\products\producta\$(Build.BuildNumber)"
Artifact Name = "$(Build.BuildNumber)"

Path = "C:\products\producta"