Wie kann meine ClickOnce-App mit meiner Visual Studio 2015-Lösung am einfachsten veröffentlicht werden? Ist es möglich, ClickOnce-Einstellungsparameter zu ändern, z. URL aktualisieren, wenn der Build ausgeführt wird?Veröffentlichen der ClickOnce-App mit TeamCity
Antwort
das ist einfach Es stellte sich heraus:
- Build-Schritt "MSBuild" Datei verweist auf die Visual Studio-Lösung
- Build ist
- Set "Target" auf "veröffentlichen"
- hinzufügen „Befehl Zeilenparameter ":
/property:PublishDir="C:\\Users\TeamCity\\Desktop\\publish\\"
< = wo die Artefakte Clickonce gestellt bekommen
Ich hatte auch einen anderen Befehlszeilenparameter /property:InstallUrl="http://my.domain/app/"
, so dass ich verschiedene Installationsorte für verschiedene Builds (Test/Produktion) festlegen kann.
Ich habe dann einen Verweis auf diesen Parameter in meiner * CSPROJ Datei:
<InstallUrl Condition="'$(InstallUrl)' == ''">http://default.domain/app/</InstallUrl>
<InstallUrl Condition="'$(InstallUrl)' != ''">$(InstallUrl)</InstallUrl>
Sie auch * CSPROJ müssen diese können Ihre App-Version von Clickonce mit der Teamcity Build-Nummer synchronisierten zu erhalten:
<ApplicationVersion Condition="'$(build_number)' == ''">1.0.0.2</ApplicationVersion>
<ApplicationVersion Condition="'$(build_number)' != ''">$(build_number)</ApplicationVersion>
<BuildNumber Condition="'$(build_number)' == ''">1.0.0.2</BuildNumber>
<BuildNumber Condition="'$(build_number)' != ''">$(build_number)</BuildNumber>
und legen Sie die Build-Nummer Format (Build-Konfiguration> Allgemeine Einstellungen) zu 1.0.0.%build.counter%
. Erhöht Dur/Moll für deine App manuell.
Was ich dann mache, ist 3 Build-Schritte mit 3 verschiedenen Versionen von oben für Entwicklung, Test und Produktion zu erstellen. Daher habe ich den gleichen Build der ClickOnce-App, der von meinen Entwicklungs-, Test- und Produktionswebsites installiert und automatisch aktualisiert wird (ich füge alle drei Builds dem Code-Repository für die Site hinzu).
Ich habe auch die "AssemblyInfo patcher" -Funktion der TeamCity Build-Konfiguration hinzugefügt und "system.Configuration" Parameter ist auf "Release" gesetzt.