2017-01-10 1 views
0

J'ai une étape de construction studio visuel dans une version CI qui crée les fichiers ClickOnce d'une application de bureau en utilisant les arguments MSBuild ci-dessous:Set ClickOnce VersionApplication et MinimumRequiredVersion à ce jour dans VSTS Construire

/target:publish /p:ApplicationVersion=$(Year:yyyy).$(Month).$(DayOfMonth).$(Build.BuildId) /p:MinimumRequiredVersion=$(Year:yyyy).$(Month).$(DayOfMonth).$(Build.BuildId) /p:InstallUrl=$(InstallUrl) 

Le $ (Build Les variables .BuildId) et $ (InstallUrl) sont remplacées par leurs valeurs correctes mais les variables $ (Year: yyyy), $ (Month) et $ (DayOfMonth) ne sont pas remplacées. J'utilise les mêmes variables pour définir le format de numéro de build sur l'onglet Général et ils sont remplacés correctement. Est-il impossible d'utiliser les variables basées sur la date dans une étape de génération dans VSTS? Editer: Il semble que l'utilisation de $ (Build.BuildNumber) fonctionnerait mais j'aime inclure le nom de la définition de construction dans le format de construction, ce qui ne fonctionnera évidemment pas pour la version.

+0

Résolvez-vous ce problème avec la solution de Luca? –

Répondre

1

$(Year:yyyy), $(Month), $(DayOfMonth) sont des jetons que vous pouvez utiliser uniquement dans le champ Format de numéro de build, et nulle part ailleurs.

Je vous suggère de créer vous-même ces variables à la volée, en tirant parti le script suivant exécuté par la tâche PowerShell (avec un script en ligne) juste avant votre tâche Build Visual Studio:

$date = get-date 
write-host "##vso[task.setvariable variable=Year;]$(($date).year)" 
write-host "##vso[task.setvariable variable=Month;]$(($date).month)" 
write-host "##vso[task.setvariable variable=Day;]$(($date).day)" 

Ensuite, vous pouvez Utilisez $(Year), $(Month) et $(Day) à la place des jetons que vous utilisez actuellement en tant qu'arguments MSBuild supplémentaires.

+0

Cela a fonctionné parfaitement. Je ne suis pas fan d'avoir à ajouter des scripts PowerShell pour quelque chose d'aussi petit mais ça marchera. Je pense que je peux juste changer le format de nombre de construction et faire face cependant. –