Wie können Sie eine ClickOnce-Anwendung über CruiseControl.NET veröffentlichen?
Habe ich CruiseControl.NET Version 1.4 auf meinem Entwicklungs-server. Wann immer ein Entwickler prüft im code, macht es kompilieren.
Nun sind wir an einem Ort, wo wir beginnen können, um unsere Anwendung zu den Testern. Wir möchten mithilfe von ClickOnce verteilen Sie die Anwendung, mit der Idee, dass, wenn ein tester geht um die Anwendung zu testen, haben Sie den neuesten build.
Ich kann nicht einen Weg finden, um das geschehen mit CruiseControl.NET. Wir sind der Verwendung von MSBUILD zum ausführen des builds.
InformationsquelleAutor der Frage proudgeekdad | 2008-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir haben dies getan und können Ihnen einige Hinweise, um zu starten.
2 Dinge, die Sie beachten sollten:
Verwenden von MSBuild zu generieren, die ClickOnce-manifeste, hier ist der Befehl, den Sie brauchen, um Problem:
Sagen, MSBuild erstellen Sie das Projekt und generieren Sie die ClickOnce-Bereitstellung von Dateien im bin\Release\YourProject.veröffentlichen Verzeichnis.
Alles, was übrig ist, kopieren Sie diese Dateien in der FTP - /UNC-Freigabe/wo auch immer, und Sie sind alle gesetzt.
Können Sie sagen, CruiseControl.NET bauen Sie mit, diese MSBuild-Parameter.
Wirst du dann brauchen CruiseControl.NET bauen Aufgabe zu übernehmen, die generierten deployment-Dateien und kopieren Sie diese auf den FTP oder UNC-Freigabe. Wir verwenden eine benutzerdefinierte wenig C# - Konsolen-Programm für diese, aber könnten Sie einfach mit einem Powershell-Skript.
InformationsquelleAutor der Antwort Judah Himango
Dank für all die Hilfe. Die endgültige Lösung, die wir implementiert nahm ein wenig von jeder Antwort.
Wir fanden es einfacher zu handhaben ist die Arbeit mit mehreren Umgebungen mit einfachen batch-Dateien. Ich bin nicht dafür, das ist der beste Weg, dies zu tun, aber für unser Szenario und Anforderungen, das funktionierte gut. Ergänzung "Projekt" mit dem Projektnamen und "Umwelt" mit Ihrer Umgebung Namen (dev, test, stage, Produktion, was auch immer).
Hier ist der Bereich Aufgaben unserer "ccnet.config" - Datei.
Das erste, was Sie bemerken, ist, dass CopySettings.bat läuft. Diese Kopien spezielle Einstellungen für die Umgebung, wie z.B. Datenbank-verbindungen.
Neben der standard-MSBUILD-task ausgeführt wird. Alle Compiler-Fehler werden hier gefangen und behandelt, als normal.
Das Letzte, was auszuführen ist, Veröffentlichen.bat. Diese tatsächlich durchführt, eine MSBUILD "rebuild" wieder von der Kommandozeile und Parameter von CruiseControl werden automatisch übergeben und gebaut. Neben MSBUILD ist aufgerufen, den "veröffentlichen" - Ziel. Die exakt gleichen Parameter gegeben sind, um das veröffentlichen als der Wiederaufbau ausgestellt wurde. Dies hält die build-Nummern zu synchronisieren. Auch unsere ausführbaren Dateien, die unterschiedlich benannt sind (z.B. - ProjectDev und ProjectTest). Wir landen mit unterschiedlichen Versionsnummern und Namen, und diese kann ClickOnce zu tun, seine Sache.
Den letzten Teil zu Veröffentlichen.bat Kopien der eigentlichen Dateien an Ihrem neuen Zuhause. Wir verwenden nicht die publish.htm wie alle unsere Benutzer auf dem Netzwerk, wir geben Ihnen einfach ein shortcut, um die manifest-Datei auf Ihrem desktop, und Sie können klicken Sie auf und immer mit der richtigen ausführbaren Datei mit einer Versionsnummer, die Beziehungen in CruiseControl.
Hier ist CopySettings.bat
Und zu guter Letzt, hier Veröffentlichen.bat
Wie ich schon sagte, ist es wahrscheinlich nicht getan, die Art und Weise, dass CruiseControl und MSBUILD-Entwickler beabsichtigt hatte, die Dinge zu arbeiten, aber es funktioniert. Wenn Sie brauchen, um diese arbeiten gestern, es könnte die Lösung sein, die Sie suchen. Viel Glück!
InformationsquelleAutor der Antwort proudgeekdad
Ich erinnere mich, dies zu tun im letzten Jahr für ein ClickOnce-Projekt, an dem ich arbeiten war. Ich erinnere mich, es nimmt mich für immer, um herauszufinden, aber hier ist es. Was ich wollte, meine scripts zu tun zu generieren, wurde ein anderes Installationsprogramm hingewiesen, dass unsere dev env und ein anderes für prod. Nicht nur das, aber ich brauchte es, um zu injizieren, die richtige Versionierung von Informationen, so dass die bestehenden Kunden hätte 'erkennen' gibt es eine neue version gibt, die ist der springende Punkt bei der clickOnce-Version.
In diesem Skript müssen Sie ersetzen mit Ihrer eigenen server-Namen etc. Der trick ist, speichern Sie die publish.htm und Projekt.veröffentlichen Sie Datei und injizieren Sie die neue Versionsnummer basiert auf der version, die Ihnen zur Verfügung gestellt von CC.NET.
Hier ist, was mein build-Skript ausgesehen hat:
Hoffe, das hilft
InformationsquelleAutor der Antwort fnCzar
Nur in der Lage sein, die übergabe der ${CCNetLabel} in der CCNET.config msbuild-Aufgabe wäre eine große Verbesserung.
InformationsquelleAutor der Antwort
Wollen Sie das ClickOnce-manifest-generation Aufgaben in msbuild. Der Prozess ist ein wenig langatmig, also ich bin gerade dabei, Sie auf ein paar links. Hier ist die Verweis auf die msdn und ein Beispiel-Artikelum hoffentlich den Einstieg.
InformationsquelleAutor der Antwort Dale Ragan