29 votes

Comment configurer MSBuild pour utiliser un publishProfile sauvegardé pour WebDeploy ?

J'ai utilisé Visual Studio pour créer un profil de publication. Il a enregistré ces informations dans le fichier MyProject.Publish.xml, situé dans la racine du répertoire de mon projet.

Je voudrais que la tâche MSBuild qui est exécutée sur mon serveur CI utilise ce fichier comme paramètres de base. Idéalement, si je pouvais remplacer les propriétés par des paramètres de ligne de commande, ce serait génial.

Est-ce possible ? Si oui, quelle est la syntaxe ?

Par exemple, je cherche quelque chose comme :

MSBuild MyProject.csproj /P:UsePublishProfile=True /P:UserName=deployUser /P:Password=MyPassword

39voto

Sayed Ibrahim Hashimi Points 25707

Je suis désolé de vous dire que le fichier publish.xml qu'utilise VS2010 n'a pas été conçu pour être utilisé de cette manière. En fait, il n'a même pas été conçu pour être archivé/partagé avec d'autres.

La logique de lecture/écriture de ces fichiers est strictement contenue dans Visual Studio et n'est pas disponible via MSBuild. Il n'y a donc pas de moyen direct de le faire aujourd'hui. Vous devez passer les noms/valeurs des propriétés individuelles lorsque vous appelez msbuild.exe. Vous pouvez voir une question similaire à laquelle j'ai répondu à l'adresse suivante Team Build : Publier localement en utilisant MSDeploy pour plus d'informations.

Note pour VS 11 Developer Preview

Juste pour que vous sachiez que nous avons abordé ce problème dans la prochaine version de Visual Studio. Vous pouvez le constater en téléchargeant l'aperçu pour développeurs de VS 11. Désormais, tous les profils sont enregistrés dans leurs propres fichiers (sous PublishProfiles dans le nœud Propriétés de l'explorateur de solutions). Ils sont maintenant conçus pour être archivés et partagés avec les membres de l'équipe. Ces fichiers sont maintenant des fichiers MSBuild et vous pouvez les personnaliser si vous le souhaitez. Afin de publier à partir de la ligne de commande, il suffit de passer DeployOnBuild=true et de définir PublishProfile au nom du profil. Par exemple :

msbuild.exe MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X