2017-05-22 3 views
0

Nous utilisons la construction TFS et lorsque j'ai construit le projet dans la construction TFS, il crée également un fichier d'installation.Copiez le fichier d'installation dans un dossier nommé avec le numéro de version dans TFS

Par exemple, ma version de l'application est V1.2.3 (son de assembly.cs) l'emplacement du fichier d'installation est C: \ MyProject \ setup \ setup.exe

Eh bien, je veux copier ce exe d'installation dans le dossier suivant

C: \ produits \ producta \ V1.2.3

donc j'ai besoin juste pour obtenir le numéro de version pour créer un dossier nommé "V1.2.3". Pour copier et créer, je peux faire un fichier batch mais je ne sais pas comment obtenir le numéro de version. TFS a quelques variables par exemple Build.SourceVersion mais ces variables ne me donnent pas le numéro de version du produit.

Comment je peux faire ça?

+0

Pour cela, vous devez écrire vous-même le script. soit le définir à un moment donné en tant que variable d'environnement et l'utiliser plus tard (alors vous pouvez l'utiliser via tfs comme% versionnumber%) ou vous devez écrire un script complet en le copiant dans le dossier de destination. – Greaka

+0

@Greaka merci pour votre réponse, y at-il une documentation pour cela? – ertan2002

+0

Je n'en connais pas. Nous avons un problème similaire et l'avons résolu via 'call'% datapath% ResHacker.exe "-extract% exepath%,% inputfile%, VERSIONINFO ,, || goto: error' dans un fichier batch – Greaka

Répondre

1

Vous devez écrire un script pour cela.

1) Script Powershell pour lire le numéro de version de AssemblyInfo.cs

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

2) Mettre à jour le numéro de version interne TFS de version actuelle

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

Après cela, vous pouvez utiliser la fonction « Copier Fichiers »ou« Publier l'artefact ».

Avec "Copier les fichiers"

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

Avec "Publish Artefact"

Artifact Name = "$(Build.BuildNumber)" 

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

Merci pour votre réponse, il m'a donné l'idée et j'ai écrit un script pour obtenir le numéro de version et copié où je veux. – ertan2002