Version: 1.1.0 | Author: Jadhav Shubhamm | License: MIT
VS Code Compatibility: ^1.90.0 | Publisher: codefox
A VS Code extension whose entire UI lives in a sidebar. It authenticates to a
Dynamics 365 / Dataverse environment, exports (downloads) a solution through
the Dataverse Web API, and unpacks it into source files with a
self-managed SolutionPackager.exe — without ever deleting existing files.
Install
Install from the Visual Studio Marketplace:
- Marketplace: https://marketplace.visualstudio.com/items?itemName=codefox.d365-solutions-unpacking-agent-vscode
- Unique Identifier:
codefox.d365-solutions-unpacking-agent-vscode
Or from the command line:
code --install-extension codefox.d365-solutions-unpacking-agent-vscode
Features
- Sidebar-first experience — the entire workflow lives in a dedicated Activity Bar view; no extra windows or panels to manage.
- Secure interactive sign-in — MSAL browser sign-in (authorization code + PKCE over a loopback redirect) with a session cached for up to 24 hours and reused across all API calls.
- One-click solution export — list your environment's solutions and export any of them as Managed or Unmanaged via the Dataverse Web API.
- Choose your download location — the exported
.zipis written to the folder you select. - Non-destructive unpacking — extraction runs with
/allowDelete:No, so existing files on disk that aren't in the zip are always preserved. - Self-managed tooling — automatically downloads and caches
SolutionPackager.exefrom theMicrosoft.CrmSdk.CoreToolsNuGet package, with in-sidebar version display, update checks, and one-click updates. - Bring your own packager — point the extension at an existing
SolutionPackager.exewith a single setting override. - Native VS Code theming & security — the webview follows your VS Code theme and is locked down with a strict CSP + nonce, with no direct network or filesystem access of its own.
What it does & how
- Authenticate — interactive browser sign-in (MSAL, authorization code + PKCE over a loopback redirect). The session is cached for up to 24 hours and reused for all API calls. It ends on manual sign-out, when the 24h limit is reached, or when Azure AD expires the refresh token (environment timeout).
- Export — calls the Dataverse
ExportSolutionaction for the selected solution as managed or unmanaged. - Download — writes the returned
.zipto the folder you choose. - Unpack — runs:
SolutionPackager.exe /action:Extract /zipfile:<downloaded.zip> /folder:"<extract folder>" \ /packagetype:<Managed|Unmanaged> /allowWrite:Yes /allowDelete:No /errorlevel:Info /nologo/allowDelete:Noguarantees that files already on disk but not present in the zip are preserved.
Self-managed SolutionPackager
The agent downloads the latest Microsoft.CrmSdk.CoreTools NuGet package
from nuget.org and caches SolutionPackager.exe (plus its dependencies) in the
extension's global storage. The sidebar shows the active version and lets you
Check for updates and Download / Update at any time.
To use your own copy instead, set
d365UnpackingAgent.solutionPackager.pathOverride to an absolute exe path.
Support
- Author: Jadhav Shubhamm — AI Developer
- Email: [email protected]
🦊 CodeFox — Driving AI-Powered Delivery Excellence
© 2026 All rights reserved. MIT License.