08 November 2012 Robert Muehsig

WebDeploy finde ich ein großartiges Tool um WebApplikationen zu publishen bzw Packages zu bauen, allerdings kann es manchmal schwer sein den Vorgang zu debuggen.

Link zum Setup WebDeploy: Wer Probleme beim Aufsetzen von WebDeploy hat, der kann auf diesen Post mal ein Blick werfen. 

Publishing aus dem Visual Studio klappt, aber über die Cmd nicht? Mhh…

image Wenn das Publishing über Visual Studio selbst klappt, aber über die Kommandozeile will es nicht und die Batch Datei will auch nicht wird es rätselhaft.

Im Standardfall nutzt Visual Studio eine interne Web Deploy API sodass die MsDeploy.exe gar nicht aufgerufen wird. Allerdings kann man Visual Studio dazu bringen den Aufruf direkt an die MsDeploy.exe weiterzureichen.

 

Allerdings gibt es eine Lösung für das Problem:

Dafür muss man im selben Verzeichnis wie die Projektdatei eine {PROJECTNAME}.wpp.targets Datei mit diesem Inhalt anlegen:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseMsdeployExe>true</UseMsdeployExe>
  </PropertyGroup>
</Project>

Man kann dieses Property auch direkt in der Projektdatei unterbringen, allerdings ist dies die schönere Lösung.

Build Output

Durch dieses Flag nutzt Visual Studio jetzt direkt MsDeploy.exe und der Aufruf kann im Build Output gesehen werden:

image 

Jetzt kann man vergleichen, was Visual Studio macht und was bislang das eigene Script nicht gesetzt hat.

Noch mehr Informationen erhält man, wenn man in den Optionen die Build Output Informationsmenge erhöht:

image

Die Information hab ich aus dem Blog von Sayed Ibrahim Hashimi – ein Microsofti, welcher sich um WebDeploy kümmert. Wer mehr über WebDeploy lernen will, sollte seinen Blog lesen.


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de