2008-08-21 7 views
13

Unser Team entwickelt verteilte Winform-Apps. Wir verwenden ClickOnce für die Bereitstellung und sind sehr zufrieden damit.Was ist die beste Methode zum Erstellen von ClickOnce-Bereitstellungen?

Allerdings haben wir die Schwachstelle mit ClickOnce in die Bereitstellungen gefunden. Wir haben die Standardentwicklungs-/Test-/Produktionsumgebungen und müssen in der Lage sein, Bereitstellungen für jede davon zu erstellen, die getrennt voneinander installiert und aktualisiert werden. Außerdem möchten wir steuern, welche Assemblys bereitgestellt werden. Nur weil eine Assembly kompiliert wurde, heißt das nicht, dass wir sie bereitstellen möchten.

Die offensichtliche erste Wahl zum Erstellen von Bereitstellungen ist Visual Studio. VS geht jedoch nicht auf die genannten Probleme ein. Die nächste Zeile ist das SDK-Tool Mage. Mage funktioniert einwandfrei, aber das Erstellen von Bereitstellungen ist ziemlich mühsam und wir möchten nicht, dass jeder Entwickler unser Codesignaturzertifikat und -kennwort erhält.

Am Ende haben wir eine eigene Bereitstellungs-App erstellt, die die Befehlszeilenversion von Mage zum Erstellen der ClickOnce-Manifestdateien verwendet.

Ich bin zufrieden mit unserer aktuellen Lösung, aber es scheint, als gäbe es einen branchenweit akzeptierten Ansatz für dieses Problem. Ist da?

Antwort

14

Ich würde mit msbuild betrachten. Es hat tasks für die Handhabung von Clickonce-Bereitstellungen eingebaut. Ich habe ein paar Referenzen hinzugefügt, die Ihnen beim Einstieg helfen, wenn Sie diesen Weg gehen wollen. Es ist was ich benutze und ich habe es gefunden, um meine Bedürfnisse zu erfüllen. Mit einem guten Build-Prozess mit Msbuild sollten Sie in der Lage sein, die Schmerzen zu quetschen, die Sie gefühlt haben.

Hier ist detailed post auf wie ClickOnce Manifest Generation mit MsBuild funktioniert.

+0

Hallo Dale Ihre Verbindung ist tot Haben Sie den Titel der Post war unter? – TombMedia

+0

@TombMedia Leider nicht, ich würde ClickOnce heute auch nicht unbedingt empfehlen. Wenn Sie einen Neuanfang beginnen, d. H. ClickOnce nicht bereits für Ihr Projekt verwenden, können Sie sich [Squirrel] (https://github.com/squirrel) ansehen. –

+0

Ich wünsche. Hier im Erbland steckengeblieben. Trotzdem danke. – TombMedia

5

Ich habe nAnt verwendet, um die allgemeine Build-Strategie auszuführen, aber Parameter in MSBuild übergeben, um das Bereitstellungspaket zu kompilieren und zu erstellen.

Im Grunde ruft nAnt MSBuild für jede Umgebung auf, für die eine Bereitstellung erforderlich ist, und generiert für jede Umgebung eine separate Bereitstellungsausgabe. Sie erhalten einen Ordner und alle ClickOnce-Dateien, die Sie für jede Umgebung benötigen, die Sie einfach auf den Server kopieren können.

So behandelten wir auch mehrere Produktionsumgebungen - wir hatten separate Instanzen unserer Anwendung für die USA, Kanada und Europa, so dass jeder Build neun Implementierungen erstellen würde, jeweils drei für dev, qa und prod.

Verwandte Themen