webentwicklung-frage-antwort-db.com.de

Webbereitstellung über MSDeploy.exe

Ich konfiguriere einen CI-Build-Server mit Jenkins. Nach den Erstellungsschritten möchte ich die Website bereitstellen.

Beim Veröffentlichen der Website aus VisualStudio habe ich von Web Deploy veröffentlicht. Ich mag diese Methode, weil sie tatsächlich die Dateien veröffentlicht, die sich geändert haben. Die Bereitstellung ist also sehr schnell.

Nun versuche ich auf dem Build-Server dasselbe: Erstellen Sie die Anwendung (mithilfe von MSBuild.exe) und stellen Sie dann die Anwendung bereit (mithilfe von MSDeploy.exe?).

Ich habe einen Beitrag gesehen, in dem die Anwendung mit MSBuild.exe und andere mit MSDeploy.exe bereitgestellt werden. Gibt es da einen signifikanten Unterschied?

Haben Sie einen Rat, der Ihnen dabei helfen könnte?

Danke und fortgeschritten.

11
Abraham Duran

Verwenden Sie MSBuild, um ein MSDeploy-Paket zu erstellen, und anschließend MSDeploy.exe, um dieses Paket in beliebigen Umgebungen bereitzustellen. Dieser Link soll Ihnen helfen, die Funktionsweise von WebDeploy/MSDeploy besser zu verstehen.

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

Was wirklich WIRKLICH cool ist, können Sie auch MSDeploy verwenden, um Datenbanken und Nicht-Webanwendungen bereitzustellen. Mit dieser Methode haben wir die Bereitstellung von über 50 Produkten vollständig automatisiert.

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

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

AKTUALISIERT- Grundlegende Schritte zur Verwendung von MSDeploy-Paketen:

  1. Erstellen Sie ein Paket in Ihrem Build, indem Sie dem Aufruf von MSBuild das Argument /t:Package hinzufügen 
  2. Speichern Sie das resultierende Paket aus dem Verzeichnis bin in Ihrem Artefakt-Repo 
  3. Rufen Sie MSDeploy.exe auf, um das Paket auf Ihrem Zielserver bereitzustellen. Hier gibt es viele Optionen, aber Folgt der grundlegende Befehl:

    "c:\Programme (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb: sync -source: package = mypackage.Zip -dest: auto, computername = localhost

14
chief7

Um noch einfacher mit dem aktuellen Visual Studio und Dotnet zu arbeiten, erstellen Sie Ihr Veröffentlichungsprofil in Visual Studio und verwenden Sie dann Dotnet auf dem CI-Server:

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