Das Microsoft 1 Click Deployment
Microsoft promotet mit seinem Visual Studio Express 2010 das 1-click-Deployment. Die Idee dahinter: Ein User klickt auf einen Link, und voilla, alles wird automatisch runtergeladen und installiert. Und hier ist, was man dabei um die Ohren geschlagen bekommt.Ausgangspunkt
- Ich habe ein VB-Projekt gemacht das ich deployen will.
- Also drücke ich auf "Publish" und erhalte einen Ordner mit einem setup.exe
Deployment
- Ich nehme das setup.exe und packe es auf einen USB-Stick
- Dann kopiere ich es auf einen anderen Rechner und starte es.
Deployment 2. Versuch
- OK, zweiter Versuch. Ich nehme nun die anderen Dateien mit.
- Ich starte den Setup und erhalte eine Meldung in etwa: "Die Anwendung kann weder installiert noch gestartet werden. Die Anwendung erfordert, dass die Assembnly Microsoft.VisualBasic.PowerPacks.Vs Version 10.0.0.0 zuerst im globalen Assemblycache (GAC) installiert wird. Wenden Sie sich an den Systemadministrator."

Microsoft verkündet mal wieder die Unwahrheit
Versuch der Reparatur
- Ich versuche diesen ominösen PowerPack zu finden. Aber Pustekuchen.
- Nach gefühlten 42h Googlen finde ich dann heraus, dass es sich anscheinend um den - Tusch - Microsoft Visual Basic Power Pack 3 handelt.
- Ich lade dann diesen Power-Pack also runter von Microsoft und installiere ihn. Nach weiteren gefühlten 42h Installationsdauer (Vista!) kommt dann die Meldung dass alles installiert ist.
- Aber Pustekuchen, es funktioniert immer noch nix.
- Leider ist diese Information nämlich falsch. Offensichtlich haben die Leute die dasselbe Problem hatten, dieses irgendwie gelöst, und dachten, die Lösung wäre dieser ältere PowerPack gewesen, weil es der letzte ist, den Microsoft auf seiner Seite finden lässt.
Der VB PowerPack 3 ist nicht der VB PowerPack 10. Diese Information im Web ist falsch. Das zeigt aber nur, wie kompliziert die Sache offensichtlich ist.
Ich war aber ebenso nicht in der Lage, VB PowerPack 10 auf den Microsoft-Webseiten zu finden. Keine Ahnung warum Microsoft den versteckt.
In einem Microsoft-Forum waren dann ebenso weder der Microsoft Support noch BING in der Lage den richtigen Link herauszufinden. Aber ein hilfreicher User hat das dann doch geschafft: go.microsoft.com/fwlink/?LinkID=145727&clcid=0x804
Der VB PowerPack 10 heißt installiert übrigens
"Microsoft Visual Basic PowerPacks 10.0" während der alte (für 2008) heißt
"Microsoft Visual Basic Power Packs 3.0". Das kapiere wer will, ich jedenfalls nicht.
"Microsoft Visual Basic PowerPacks 10.0" während der alte (für 2008) heißt
"Microsoft Visual Basic Power Packs 3.0". Das kapiere wer will, ich jedenfalls nicht.
Gescheitert
Also, wie funktioniert bitte dieses wunderbare Microsoft 1 Click deployment? (Oder Microsoft Click Once Deployment oder wie auch immer gerade mal wieder vom Marketing umbenannt worden ist?) Nach weitere gefühlten 42 Tagen Rumsucherei kam ich dann doch auf den Trichter.Doch eine Lösung
Irgendwie stolperte ich dann über folgende Information: msdn.microsoft.com/de-de/library/8st7th1x.aspx Da dieses Link vermutlich in den nächsten 0,3 Microsekunden vaporisiert hier kurz die Zusammenfassung:- Unter VB 2010 geht man in die Projekteigenschaften
- Unter "Veröffentlichen" unter "Erforderliche Komponenten" markiert man die fehlende Komponente und sagt sie sollen runtergeladen werden
- Dann publiziert man die Komponente nochmals
- Und dann klappt die Installation, weil die fehlenden Komponenten runtergeladen werden.
Oder auch nicht. Ich hatte ein Text-Deployment per GIT gemacht - beim Kopieren der Textdateien wurde das Windows CR aus den Textdateien entfernt. Das geht schief, weil Microsoft die Signaturen der Dateien prüft.
An sich ist das ja etwas vollkommen positives. Negativ fällt mal wieder nur die Inkompatibilität von Microsoft auf. Gelöst habe ich das im GIT mit einer Datei .gitattributes die folgendes enthält:
Ach ja, ich war genervt, deshalb.
publish/* binary
publish/*/* binary
publish/*/*/* binary
publish/*/*/*/* binary
publish/*/*/*/*/* binary
publish/*/*/*/*/*/* binary
publish/*/*/*/*/*/*/* binary
publish/*/*/*/*/*/*/*/* binary
Fazit
- Sun/Oracle kriegen es hin.
- Linux kriegt es schon lange hin.
- Apple kriegt es hin.
- Google kriegt es sowieso hin.
- Netscape hat es auch hingekriegt.
- Selbst Adobe kriegt es inzwischen hin.
In der heutigen Zeit ist das ein Epic Fail, eine Unmöglicherkeit, das noch nicht sauber hinzukriegen.
Grundlagen
Hier die Grundlagen was ich unter One-Click-Deployment verstehe:- Auf einer Webseite ist ein Button "Deploy"
- Man klickt auf den Button
- Die Anwendung wird heruntergeladen und installiert
- Es handelt sich um ein einziges URL, also nur 1 Datei und kein Dateibaum
- Automatische Updates sind möglich aber nicht nötig
- Es dürfen Sicherheitsabfragen passieren, d. h. es können zusätzliche Klicks dazukommen
- Wenn Dinge nachgeladen werden, dann automatisch
Was andere machen
Bei anderen geht das wie beschrieben:- Adobe AIR ist eine einzige Datei (eine Art ZIP) das alles enthält das man braucht. Ggf. wird die AIR Runtime nachinstalliert.
- Sun hat es mit seinem Java-Quickstart vorgemacht wie es aussehen kann. Technisch ist es zwar komplizierter, aber es geht - soviel ich weiß - mit einem einzigen JAR file
- Bei Windows geht das übrigens auch, aber eben nicht mit den Tools die Microsoft bereitstellt, sondern nur mit Third-Party-Lösungen. Leider sind diese aber nicht Teil von Visual Studio 2010 Express.
- Bei Linux geht das schon seit Jahren. Inzwischen ist es schon fast möglich, Linux mit 1 Klick zu installieren und laufen zu lassen.
- Netscape hat gezeigt wie es mit JavaScript geht. Daher kommt ja das ganze Web. Und ja, alles geht mit einer einzigen Datei, wenn man es denn so will!
- Google und Apple, auch Nokia, haben entsprechende Dinge in ihre Handys eingebaut. Naja, ob es auf der Server-Seite eine einzige Datei ist, weiß ich indes nicht. Es wäre aber sinnvoll.
Wie es Microsoft macht
Eigentlich ist das was Microsoft macht gar nicht so blöd wie es aussieht. Nur finde ich, dass es einfach nach bald 20 Jahren, irgendwie noch sehr Urtümlich aussieht, so wie ich es vor 15 Jahren schon als "zu kompliziert" bezeichnet hätte:- Microsoft stellt ein "publish.htm" bereit, über das man die Software installieren kann.
- Dazu gehört ein .exe das man runterladen und starten kann.
- Das .exe lädt (anscheinend) eine weitere Datei nach und prüft dann all die Abhängigkeiten.
- Es lädt die Abhängigkeiten herunter und installiert sie.
- Ggf. lädt es die Applikation herunter und installiert sie, oder es konfiguriert sie so, dass sie ohne Installation direkt ausgeführt wird.