Skip to content

CI-basiertes ClickOnce Auto-Update Deployment für GuacamoleClient (.NET 8 WinForms) #24

@jochenwezel

Description

@jochenwezel

Hintergrund

GuacamoleClient ist eine WinForms-Desktopanwendung auf Basis von .NET 8, die künftig über GitHub Releases + GitHub Pages mit ClickOnce-Auto-Update an die Community verteilt werden soll.

Ziel

Aufbau einer reinen SDK-basierten ClickOnce-Buildpipeline:

dotnet publish → dotnet.mage → GitHub Pages → GitHub Release

Deliverables

  • .config/dotnet-tools.json – lokales Tool-Manifest mit dotnet-mage
  • .github/workflows/clickonce.yml – CI-Pipeline
  • pages/clickonce/* – ClickOnce-Feed
  • .nojekyll + .gitattributes
  • INSTALL.md
  • RELEASE.md

Teilaufgaben

MS-1: Toolchain vorbereiten

  • REJECETED: dotnet new tool-manifest
  • dotnet tool install dotnet-mage
  • Commit .config/dotnet-tools.json

MS-2: SDK Publish Pipeline

  • dotnet publish win-x64
  • Output publish/app
  • Version aus Git-Tag

MS-3: ClickOnce Manifest Builder

  • dotnet mage new application
  • dotnet mage new deployment
  • Update-URL GitHub Pages

MS-4: GitHub Pages Deployment

  • Pages-Deploy
  • .nojekyll
  • .gitattributes

MS-5: Code-Signing

  • PFX Secret
  • dotnet mage sign

MS-6: Release UX

  • INSTALL.md
  • GitHub Release Template
  • check if it makes sense: publish pipeline no more release-driven but tag-push-driven
    • split up YML into 2 files, 2nd one with
on:
  workflow_dispatch:
  push:
    tags:
      - "v*"

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions