2017-06-22 4 views
0

J'essaie de créer et de déployer une application Web ASP.NET via TeamCity et WebDeploy.
Avant de poser la question - j'ai trouvé plusieurs questions similaires, mais aucune d'elles n'a fonctionné dans mon cas.
J'essaie de transmettre les paramètres TeamCity à MsBuild. J'ai un gabarit de construction qui définit les paramètres comme vides, et puis construisez la configuration les contourner.
J'ai essayé les propriétés du système, mais cela n'a pas fonctionné pour moi. Ce qui est encore pire, TeamCity n'enregistre pas les valeurs des paramètres MsBuild, donc je ne peux pas les regarder.
Voici l'exemple de la façon dont je passe des paramètres à MSBuild dans mon modèle de construction: /property:MsDeployServiceUrl=https://$(deploy_vm_name):8172/MsDeploy.axd /property:DeployIisAppPath=$(deploy_app_name) /property:SkipExtraFilesOnServer=True /property:UserName=$(deploy_username) /property:Password=$(deploy_password).
Selon la documentation, la syntaxe est correcte.
Les paramètres sont system.deploy_app_name, system.deploy_username, system.deploy_password, system.deploy_vm_name.
Le message d'erreur que je reçois - C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4115, 5): Invalid Web Deploy service URL.
J'utilise TeamCity version 10.0.2 avec MsBuild version 14.
Des suggestions? Qu'est-ce que j'ai raté?Comment passer les paramètres TeamCity à MsBuild?

Répondre

0

Je pense que parce que vous définissez ces propriétés via des arguments dans une étape de construction, vous devez utiliser la syntaxe% teamcity.parameter% typique où vous utilisez la syntaxe $ (msbuild_parameter). Ou ignorez simplement les paramètres sur la ligne de commande entièrement. Vous devriez être capable de résoudre les paramètres system.parameters de TeamCity dans le script MSBuild en utilisant la syntaxe $ (msbuild_parameter).

De la documentation que vous avez lié:

Pour MSBuild (Visual Studio 2005/2008 fichiers de projet) utilisent $(). Notez que MSBuild ne prend pas en charge les noms avec des points ("."), Vous devez donc remplacer "." avec "_" lors de l'utilisation de la propriété dans un script de construction. Vous n'êtes pas à l'intérieur d'un script de construction, vous êtes en dehors du script définissant les arguments de propriété.

+1

vous avez surtout raison, je posterai la réponse de travail avec des explications un peu plus tard. merci – chester89

1

Ainsi, le mouvement correct est de spécifier les paramètres du système nommés exactement après les paramètres MSBuild et ne mentionnent pas ces paramètres à l'étape MSBuild. Après je l'ai fait, tout s'est bien passé.
Je reconnais que ce n'est pas des solutions très flexibles puisque vous pouvez avoir plusieurs étapes MSBuild, mais si quelqu'un connaît mieux - s'il vous plaît partager

+0

et nous avons juste frappé cette limitation aujourd'hui * triste panda * – chester89