Release 0.2.0 vorbereiten: update-agent ins Paket, Release-Skripte

Das 0.1.0-Paket enthielt keinen update-agent. "Jetzt installieren" sucht ihn
ueber UpdateClient.ResolveAgentPath() neben der Anwendung - ohne ihn konnte
sich keine Installation selbst aktualisieren.

- BundleUpdateAgent (App-csproj): legt den Agenten beim Publish fuer eine
  Laufzeitkennung neben die Anwendung; fuer ein Release ein Abbruch, wenn er fehlt
- scripts/release.ps1: unveraenderte Vorlage des Deploymentcenters
- scripts/publish-release.ps1: holt den Agenten mit Pruefsumme aus installer.json
  und legt die Packager-Konfiguration neben pack-and-deploy
- Version 0.2.0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-09-14 10:55:43 +02:00
co-authored by Claude Opus 5
parent 86b497bdbf
commit 0f18f562c7
6 changed files with 360 additions and 1 deletions
@@ -83,4 +83,24 @@
<Content Include="..\PolyTrader.Web\wwwroot\**" Link="wwwroot\%(RecursiveDir)%(Filename)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<!-- Der update-agent gehört ins Paket, direkt neben die Anwendung. "Jetzt installieren" sucht ihn
über UpdateClient.ResolveAgentPath() genau dort; fehlt er, meldet die Anwendung nur "kein
Update-Agent" und kann sich nie selbst aktualisieren. Das 0.1.0-Paket vom 20.08.2026 hatte
ihn nicht - weder die Release-Vorlage noch pack-and-deploy legen ihn hinein.
Die Binaries holt scripts/publish-release.ps1 mit Prüfsumme nach .dc-tools/. Liegen der
Agent im Paket und in der manifest.json, tauscht er sich beim Update selbst mit aus. -->
<Target Name="BundleUpdateAgent" AfterTargets="Publish" Condition="'$(RuntimeIdentifier)' != ''">
<PropertyGroup>
<_DcAgentExt Condition="$(RuntimeIdentifier.StartsWith('win'))">.exe</_DcAgentExt>
<_DcAgentSource>$(MSBuildThisFileDirectory)..\..\.dc-tools\update-agent-$(RuntimeIdentifier)$(_DcAgentExt)</_DcAgentSource>
</PropertyGroup>
<!-- Für ein Release (DcRequireUpdateAgent=true, gesetzt von publish-release.ps1) ist ein
fehlender Agent ein Abbruch; beim Publish zum Testen nur ein Hinweis. -->
<Error Condition="!Exists('$(_DcAgentSource)') And '$(DcRequireUpdateAgent)' == 'true'"
Text="update-agent für $(RuntimeIdentifier) fehlt ($(_DcAgentSource)). Ohne ihn kann sich die Installation nicht selbst aktualisieren - scripts/publish-release.ps1 holt ihn." />
<Warning Condition="!Exists('$(_DcAgentSource)') And '$(DcRequireUpdateAgent)' != 'true'"
Text="update-agent für $(RuntimeIdentifier) nicht gefunden ($(_DcAgentSource)) - dieses Publish kann sich nicht selbst aktualisieren." />
<Copy Condition="Exists('$(_DcAgentSource)')" SourceFiles="$(_DcAgentSource)" DestinationFiles="$(PublishDir)update-agent$(_DcAgentExt)" />
</Target>
</Project>