web-dev-qa-db-fra.com

Déploiement Web via MSDeploy.exe

Je configure un serveur de build CI avec Jenkins. Après les étapes de construction, j'aimerais déployer le site Web.

Lors de la publication du site Web à partir de VisualStudio, j'ai publié par Web Deploy. J'aime cette méthode car elle publie en fait les fichiers qui ont changé. Le déploiement est donc très rapide.

Maintenant, sur le serveur de build, j'essaie de faire la même chose: construisez l'application (en utilisant MSBuild.exe), puis déployez l'application (en utilisant MSDeploy.exe?).

J'ai vu des publications où ils déploient l'application en utilisant MSBuild.exe et d'autres en utilisant MSDeploy.exe, existe-t-il une différence significative?

Avez-vous des conseils qui pourraient vous aider?

Merci et avancé.

11
Abraham Duran

Utilisez MSBuild pour créer un package MSDeploy, puis MSDeploy.exe pour le déployer dans n’importe quel environnement. Ce lien devrait vous aider à mieux comprendre le fonctionnement de WebDeploy/MSDeploy.

http://dotnetcatch.com/2016/02/25/the-anatomy-of-a-webdeploy-package/

Ce qui est vraiment cool, c’est que vous pouvez également utiliser MSDeploy pour déployer des bases de données et des applications non Web. Nous avons entièrement automatisé le déploiement de plus de 50 produits à l'aide de cette méthode.

http://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/

http://dotnetcatch.com/2016/03/18/deploy-non-web-apps-with-msdeploy/

UPDATED - Étapes de base pour utiliser les packages MSDeploy:

  1. Créez un paquet dans votre construction en ajoutant le /t:Package arg à votre appel MSBuild 
  2. Stockez le paquet résultant dans le répertoire bin dans votre dépôt d'artefact. 
  3. Appelez MSDeploy.exe pour déployer le package sur votre serveur cible. Il y a beaucoup d'options ici mais La commande de base suit:

    "c:\Program Files (x86)\IIS\Web Web Deploy V3\msdeploy.exe" -verb: sync -source: package = mypackage.Zip -dest: auto, Nom ordinateur = localhost

14
chief7

Encore plus facilement avec Visual Studio actuel et Dotnet, créez votre profil de publication dans Visual Studio, puis utilisez Dotnet sur le serveur CI:

dotnet publish /p:PublishProfile=PROFILE-NAME /p:Password=*****

https://github.com/aspnet/Docs/blob/master/aspnetcore/Host-and-deploy/visual-studio-publish-profiles.md

0
Auspex