Skip to content

Add dsc-bicep-ext to MSIX and expose on PATH#1410

Open
andyleejordan wants to merge 2 commits intoPowerShell:mainfrom
andyleejordan:dsc-bicep-ext
Open

Add dsc-bicep-ext to MSIX and expose on PATH#1410
andyleejordan wants to merge 2 commits intoPowerShell:mainfrom
andyleejordan:dsc-bicep-ext

Conversation

@andyleejordan
Copy link
Member

Also includes #1409.

With microsoft/bicep-types-dsc@2429956 the Bicep extension now has a facade to start dsc-bicep-ext and 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-lib isn'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.

@andyleejordan
Copy link
Member Author

If we build macOS and Linux packages too, I need to verify that dsc-bicep-ext is also shipped in those.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.exe as a second MSIX application with a windows.appExecutionAlias so it’s discoverable on PATH.
  • 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.exe in 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.

Comment on lines +433 to +442
},
{
"Name": "dsc-bicep-ext",
"Kind": "Extension",
"RelativePath": "dsc-bicep-ext",
"SupportedPlatformOS": "Windows",
"IsRust": true,
"Binaries": [
"dsc-bicep-ext"
]
Copy link

Copilot AI Mar 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Suggested change
},
{
"Name": "dsc-bicep-ext",
"Kind": "Extension",
"RelativePath": "dsc-bicep-ext",
"SupportedPlatformOS": "Windows",
"IsRust": true,
"Binaries": [
"dsc-bicep-ext"
]

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants