Add dsc-bicep-ext to MSIX and expose on PATH#1410
Add dsc-bicep-ext to MSIX and expose on PATH#1410andyleejordan wants to merge 2 commits intoPowerShell:mainfrom
dsc-bicep-ext to MSIX and expose on PATH#1410Conversation
So we can setup a facade in Bicep to call out to the installed gRPC server.
|
If we build macOS and Linux packages too, I need to verify that dsc-bicep-ext is also shipped in those. |
There was a problem hiding this comment.
Pull request overview
This PR updates the Windows MSIX packaging to include the new dsc-bicep-ext binary and expose it via an execution alias on PATH, and also adjusts MSIX build behavior for release vs. debug builds (publisher identity and install guidance).
Changes:
- Add
dsc-bicep-ext.exeas a second MSIX application with awindows.appExecutionAliasso it’s discoverable onPATH. - Update MSIX build logic to fail fast on non-Windows, and to use a release publisher vs. a debug unsigned publisher identity.
- Include
dsc-bicep-ext.exein the Windows MSIX file list and add project metadata for it in build data.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| packaging/msix/AppxManifest.xml | Adds dsc-bicep-ext.exe as an MSIX application and registers an execution alias. |
| helpers.build.psm1 | Fixes Windows-only guard for MSIX packaging; sets publisher differently for release vs debug and updates debug install message. |
| data.build.json | Ensures dsc-bicep-ext.exe is included in Windows package files and adds a project entry for dsc-bicep-ext. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| }, | ||
| { | ||
| "Name": "dsc-bicep-ext", | ||
| "Kind": "Extension", | ||
| "RelativePath": "dsc-bicep-ext", | ||
| "SupportedPlatformOS": "Windows", | ||
| "IsRust": true, | ||
| "Binaries": [ | ||
| "dsc-bicep-ext" | ||
| ] |
There was a problem hiding this comment.
data.build.json defines the dsc-bicep-ext project as Kind: "Extension" and SupportedPlatformOS: "Windows", but the repository’s dsc-bicep-ext/.project.data.json currently declares it as Kind: "CLI" with no SupportedPlatformOS restriction. Since Import-DscBuildData -RefreshProjects rebuilds the project list from .project.data.json, this new entry will be ignored in that common path, and the mismatch can lead to confusing/unstable build behavior depending on whether -RefreshProjects is used. Align the kind/platform metadata between data.build.json and dsc-bicep-ext/.project.data.json (or remove the redundant project entry here if .project.data.json is intended to be the source of truth).
| }, | |
| { | |
| "Name": "dsc-bicep-ext", | |
| "Kind": "Extension", | |
| "RelativePath": "dsc-bicep-ext", | |
| "SupportedPlatformOS": "Windows", | |
| "IsRust": true, | |
| "Binaries": [ | |
| "dsc-bicep-ext" | |
| ] |
Also includes #1409.
With microsoft/bicep-types-dsc@2429956 the Bicep extension now has a facade to start
dsc-bicep-extand funnel requests between it and Bicep. This gets around all design assumptions in DSC that looks for resources relative to the binary executing the resources (e.g.dsc-libisn't quite a library) and the sandboxing caused by bundling the resources into the MSIX package instead of a common and accessible known location.Another win from unbundling is that the extension is serviced within DSC releases. Future work is to eliminate the facade in the Bicep extension by improving the Bicep Local Extension API to support the scenario of executing an arbitrary gRPC server.