# Desktopmanager Build

> Build, package, and verify DesktopManager NuGet, PowerShell module, and CLI/MCP artefacts through the repo-standard PowerForge entrypoints. Use when changing Build/Build-Project.ps1, Build/Build-Module.ps1, Build/project.build.json, powerforge.dotnetpublish.json, module packaging, CLI publish outputs, release assets, or build/operator documentation.

- Skill: `evotecit/desktopmanager-build` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add evotecit/desktopmanager-build`
- Raw SKILL.md: https://api.skillmd.com/api/skills/evotecit/desktopmanager-build/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: evotecit (https://skillmd.com/u/evotecit)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/evotecit/desktopmanager-build

---


# DesktopManager Build

Use this skill when the task touches how DesktopManager is built, packaged, or published.

## Golden Path

1. Use the repo entrypoint first:
   `.\Build\Build-Project.ps1`
2. Prefer plan mode before changing packaging behavior:
   `.\Build\Build-Project.ps1 -Plan`
3. For PowerShell module-only work, use:
   `.\Build\Build-Module.ps1 -SkipInstall`
4. For CLI/app publish verification, use:
   `.\Build\Build-Project.ps1 -Build:$false -BuildModule:$false`
5. For the daily WinUI tray app without installers, use:
   `.\Build\Build-DesktopManagerApp.ps1`
6. For the generated DesktopManager app MSI, use:
   `.\Build\Build-DesktopManagerApp-MSI.ps1`
   The MSI wrapper publishes `DesktopManager.App` as `PortableCompat`.
7. When checking a specific runtime publish, pass:
   `-Runtimes win-x64`

## Decision Rules

- Treat `Build/Build-Project.ps1` as the primary repo build and release entrypoint.
- Prefer changing `Build/project.build.json` and `powerforge.dotnetpublish.json` over hardcoding publish behavior in ad-hoc scripts.
- Prefer `Build/Build-Module.ps1` for PowerShell packaging behavior instead of editing checked-in artefacts by hand.
- Prefer the app/MSI wrapper scripts for daily desktop app packaging instead of invoking generated WiX files directly.
- Verify the resulting behaviour from the real surfaces:
  NuGet/library, PowerShell import, CLI help, `desktopmanager mcp serve`, `DesktopManager.App.exe`, and MSI plan/build output.
- Keep docs aligned with the actual build flow:
  `Docs/Build.Runbook.md`, `README.MD`, and repo-local skills.
- When packaging or publish output changes, check the expected output locations before concluding:
  `Artefacts/ProjectBuild`, `Artefacts/Unpacked`, `Artefacts/Packed`, `Artefacts/PowerForge/DesktopManager`, `Artefacts/PowerForge/DesktopManager.App`, and `Artefacts/PowerForge/Msi/DesktopManager.App`.

## Reference Files

- `Build/Build-Project.ps1`
- `Build/Build-Module.ps1`
- `Build/Build-DesktopManagerApp.ps1`
- `Build/Build-DesktopManagerApp-MSI.ps1`
- `Build/project.build.json`
- `powerforge.dotnetpublish.json`
- `Docs/Build.Runbook.md`
- `README.MD`

