All guides

Packaging & releases

Create packages and understand the complete draft-to-published release process.

2 min read · Maintained with the appSource guide · Improve this page

Packaging and releases#

Most contributors do not need to package an installer.

For local packaging, restore the pinned tool and use the version already in version.txt:

dotnet tool restore
pwsh build\package.ps1 -Runtime win-x64
pwsh build\package.ps1 -Runtime win-arm64
pwsh build\package.ps1 -Runtime win-x64 -Edition Core

The script publishes the app, MCP companion, and agent assets, then creates installer, managed-portable, and update-feed assets. Full includes the Copilot runtime and emits the separately verified component ZIP/manifest; Core omits it. Default channels are win-x64/win-arm64 for Full and core-win-x64/core-win-arm64 for Core. Publish/release paths use those channels under artifacts\publish\<version>\<channel> and artifacts\releases\<channel>. -OutputRoot and -BuildArtifactsPath can move large outputs to another drive.

Use -Edition Core for public slim packages; omit the older runtime flag when selecting an edition. Full remains available and existing installations stay on their edition's feed. Core's native component installer validates official HTTPS downloads, archive/file hashes, bounded paths/counts, and SDK stdio startup before publishing a local selecting receipt. Credentials, models, sessions, image uploads, and permission changes are not part of that installation. Regenerate the logo/tray assets only when needed with pwsh build\make-icons.ps1.

Maintainer release flow#

Release Please owns version.txt, Directory.Build.props, CHANGELOG.md, .release-please-manifest.json, and both agent plugin versions. Do not manually bump these files or create release tags in an ordinary feature/fix PR.

After changes land on main, review and merge the release PR. The combined release workflow creates a tag/draft, tests and packages both architectures/editions, uploads installers/portable bundles/feed files and optional-component manifests/archives, and only then publishes the release as latest. Hosted native ARM64 component/MCP execution is not physical-device UI acceptance. Never publish a partial draft; update clients must not discover incomplete assets.

For repair/bootstrap, maintainers can dispatch Release Please and publish with an existing tagged version. Keep tag, manifest, MSBuild, and plugin versions consistent. GitHub must allow Actions to create pull requests; no personal token or signing credential belongs in source control. Release packages are currently unsigned.

Find your next step.

Search guides, settings, tools, and troubleshooting.

Ctrl/Cmd + K to search · Arrow keys to explore · Enter to open · Escape to close