9

Auf dem Remote-Webserver habe ich den Remote-Service http://x.x.x.x/MsDeployAgentService installiert.Wie verwende ich VS2010 One-Click Publish (MsDeploy) zur Remote-Bereitstellung über die Befehlszeile?

Wenn ich den Befehl Veröffentlichen des Webanwendungsprojekts in VS2010 verwende, kann ich erfolgreich auf diesem Remote-Webserver veröffentlichen und eine bestimmte IIS-Website aktualisieren.

Was ich jetzt tun möchte, ist diese Funktion über die Befehlszeile auszuführen.

Ich rate, es ist zwei Schritte. Zuerst das Web-Anwendung erstellen Projekt der entsprechende Build-Konfiguration mit:

msbuild "C:\MyApplication\MyWebApplication.csproj" 
     /T:Package /P:Configuration=Release 

dann den MSDeploy Befehl ausgeben, um es/Synchronisierung mit dem Server zu entfernen IIS veröffentlichen hat:

msdeploy -verb:sync 
     -source:package="C:\MyApplication\obj\Release\Package\MyWebApplication.zip" 
     -dest:contentPath="My Production Website", 
      computerName=http://x.x.x.x/MsDeployAgentService, 
      username=adminuser,password=adminpassword 

Leider bekomme ich einen den Fehler:

Error: (10/05/2010 3:52:02 PM) An error occurred when the request was processed on the remote computer.

Error: Source (sitemanifest) and destination (contentPath) are not compatible for the given operation. Error count: 1.

ich habe eine Reihe von verschiedenen Kombinationen für Zielanbieter versucht, aber keine Freude :(

Hat es jemand geschafft, VS2010 Web Application Project "One Click" Veröffentlichen von der Befehlszeile zu replizieren?

+0

Update: Aus einem wenig Fortschritt, der Befehl: MSDeploy -verb: sync -Quelle: manifest = "C: \ MyApplication \ obj \ Release \ Package \ MyWebApplication.SourceManifest.xml" -dest: Auto, Computername = xxxx, userName = admin, password = xyz wird verbunden aber schlägt mit Fehler fehl ... Ein Fehler trat auf, wenn die Anforderung auf dem Remotecomputer verarbeitet wurde. Fehler: Ein Wert für die Einstellung 'setAclUser' muss angegeben werden, wenn der Provider 'setAcl' mit einem physischen Pfad verwendet wird. hmmmm, irgendwelche Ideen? – David

Antwort

1

Was möchten Sie ausgeführt tun, um die [Projektname] .deploy.cmd Datei im Verzeichnis/obj/release/Paketordner statt.

Zuerst in Visual Studio, gehen Sie auf die Projekteigenschaften und dann auf die "Paket/Publish Web" -Einstellung, wählen Sie Ihre "Release" -Konfiguration und definieren Sie Ihren Inhaltspfad in der Einstellung "IIS-Website/Anwendung" .

Jetzt führen Sie genau dasselbe MSBuild-Skript aus, das Sie bereits verwenden, und es erstellt das Paket mit dem in der Datei/obj/release/package/[Projektname] .SetParameters.xml definierten Inhaltspfad.

Der letzte Schritt besteht darin, [Projektname] .deploy.cmd/Y /M:http://x.x.x.x/MsDeployAgentService im Ordner/obj/release/package auszuführen.

Dies ruft MSDeploy mit allen entsprechenden Parametern auf.