J'utilise actuellement le runner MSBuild dans TeamCity pour une intégration continue sur mon serveur local et cela fonctionne très bien. Cependant, j'ai du mal à trouver une liste complète des commutateurs de ligne de commande pris en charge pour MSDeploy au format que TeamCity attend d'eux.
Dans ma section "Paramètres", j'utilise actuellement les commutateurs suivants:
/P:Configuration=OnCommit
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://CIServer:8172/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True
/P:UserName=Kaine
/P:Password=**********
/P:DeployIISAppPath="OnCommit/MySite"
/P:SkipExtraFilesOnServer=True
/P:DeployAsIisApp=True
Tous ces éléments semblent fonctionner correctement et MSDeploy fonctionne comme prévu.
Le problème vient quand je veux ajouter des paramètres supplémentaires.
J'ai recherché les paramètres MSBuild et la documentation MSDeploy et je ne trouve que des paramètres de ligne de commande comme ceux-ci:
msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean
http://msdn.Microsoft.com/en-us/library/ms164311.aspx
Il semble que ces références pour les arguments de ligne de commande ne correspondent pas au format/P: par exemple, CreatePackageOnPublish et DeployIISAppPath ne sont pas des paramètres de ligne de commande reconnus, mais ils fonctionnent correctement dans le processus de génération TeamCity.
Où puis-je trouver une liste complète et documentée des arguments MSDeploy au format
/ P: Param = Valeur
Informations supplémentaires:
Il y a une liste de paramètres ici:
Cependant, il ne s'agit pas d'une liste complète - par exemple, cette liste n'inclut pas DeployAsIisApp ou SkipExtraFilesOnServer, qui sont tous deux des paramètres qui fonctionnent à partir de Team City Build.
Aussi cette question connexe (éventuellement en double): Paramètres valides pour MSDeploy via MSBuild qui contient quelques arguments - mais toujours pas une liste définitive.
Premièrement, la réponse courte est que vous ne pouvez pas trouver la liste complète. MSBuild ne dispose pas d'une liste complète de paramètres parmi lesquels vous pouvez choisir, car vous pouvez envoyer les paramètres de votre choix. C'est un moyen de communication entre l'appelant de MSBuild et l'auteur du script de build MSBuild (un fichier vs sln ou csproj par exemple).
Si le script de construction utilise le paramètre, il est utilisé, sinon il est ignoré.
Il s'agit donc d'un appel valide à msbuild:
msbuild /p:<anything>=<anything>
Deuxièmement, vous ne devez pas envoyer de paramètres à msbuild depuis teamcity en utilisant les options de la commande/p :. Au lieu de cela, définissez la configuration ou les propriétés du système dans votre configuration de build teamcity. Ils seront transmis à msbuild automatiquement en tant que paramètres.
Voici les paramètres utilisés par Visual Studio Team Services lors de la création d'une définition de génération ASP.NET (préversion):
/p:DeployOnBuild=true
/p:WebPublishMethod=Package
/p:PackageAsSingleFile=true
/p:SkipInvalidConfigurations=true
/p:PackageLocation="$(build.artifactstagingdirectory)\\"
On peut également extrapoler à partir du <PropertyGroup />
blocs définis dans ces exemples:
https://msdn.Microsoft.com/en-us/library/ff398069 (v = vs.110) .aspx
De cet exemple:
<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>Package</WebPublishMethod>
<LaunchASiteUrlAfterPublish>False</LaunchASiteUrlAfterPublish>
<SiteUrlToLaunchAfterPublish />
<MSDeployServiceURL />
<DeployIisAppPath />
<RemoteSitePhysicalPath />
<AllowUntrustedCertificate>False</AllowUntrustedCertificate>
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<DeployAsIisApp>True</DeployAsIisApp>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<UserName />
<SavePWD>True</SavePWD>
<PublishDatabaseSettings>
<!— this section omitted to keep the example short -->
</PublishDatabaseSettings>
</PropertyGroup>
</Project>
Vous pouvez dériver la liste suivante: