Skip to content
| Marketplace
Sign in
Visual Studio Code>Debuggers>D365 CRM Solutions Unpacking AgentNew to Visual Studio Code? Get it now.
D365 CRM Solutions Unpacking Agent

D365 CRM Solutions Unpacking Agent

Shubhamm-Jadhav (CF)

|
27 installs
| (1) | Free
Sidebar agent that authenticates to Dynamics 365 / Dataverse, exports (downloads) a solution via the Web API and unpacks it with a self-managed SolutionPackager.exe without deleting any files.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

D365 CRM Solutions Unpacking Agent

Version: 1.5.6 | 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 unpacks a Dynamics 365 / Dataverse solution into source files with a self-managed SolutionPackager.exe — either offline from a .zip you already have on disk, or online by authenticating, exporting (downloading) the solution through the Dataverse Web API, and unpacking it — 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.
  • Offline unpack (no sign-in) — unpack a solution .zip you already have on disk using only SolutionPackager; no environment or authentication required.
  • Guided, dependency-ordered layout — SolutionPackager first (the shared engine), then Offline unpack, then the Online unpack group with Authentication (1) and Download & Unpack (2).
  • 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 .zip is written to the folder you select.
  • Download-only mode — save the exported .zip without installing or running SolutionPackager. The unpack folder is required only when Download & Unpack is selected, and is cleared when hidden.
  • Read-only, synced environment — the Download & Unpack URL mirrors the environment you signed in to; switching environments resets that form.
  • At-a-glance status — each card mirrors its state onto a green/red side border, and starting a run collapses the setup cards to keep the Activity log in focus.
  • Determinate progress & quick access — a progress bar tracks each run and an Open folder action reveals the result when it finishes.
  • 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.exe from the Microsoft.CrmSdk.CoreTools NuGet package, with in-sidebar version display, update checks, and one-click updates.
  • Bring your own packager — point the extension at an existing SolutionPackager.exe with 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

The sidebar is ordered by dependency: SolutionPackager first (the shared engine), then Offline unpack, then the Online unpack group.

  1. Set up SolutionPackager — the agent downloads and caches it automatically, or you can point it at your own SolutionPackager.exe. Both unpack paths use it.
  2. Offline unpack — pick a solution .zip already on disk, choose Managed/Unmanaged, and unpack it into a folder. No sign-in or environment is required.
  3. Online · 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).
  4. Online · Export & Download — calls the Dataverse ExportSolution action for the selected solution as managed or unmanaged and writes the returned .zip to the folder you choose. Choose Download only to stop here (the unpack folder is then hidden and cleared).
  5. Online · Unpack (optional) — when Download & Unpack is selected, runs:
    SolutionPackager.exe /action:Extract /zipfile:<downloaded.zip> /folder:"<extract folder>" \
      /packagetype:<Managed|Unmanaged> /allowWrite:Yes /allowDelete:No /errorlevel:Info /nologo
    
    /allowDelete:No guarantees that files already on disk but not present in the zip are preserved. The same command powers Offline unpack.

How SolutionPackager is used

By default, the agent downloads Microsoft.CrmSdk.CoreTools from NuGet, extracts SolutionPackager.exe and its dependencies, and runs it directly. On Windows, the managed executable is stored under:

%APPDATA%\Code\User\globalStorage\codefox.d365-solutions-unpacking-agent-vscode\coretools\<version>\SolutionPackager.exe

This is VS Code user storage, not Program Files, so the normal managed setup does not require an administrator installation.

If downloading or starting the managed copy is blocked by machine policy:

  1. Download Microsoft.CrmSdk.CoreTools from NuGet. The downloaded .nupkg may stay in your Downloads folder.
  2. Rename the downloaded .nupkg to .zip, or open it with a ZIP tool.
  3. Extract the complete archive. Microsoft Learn documents the executable under <extracted-folder>/contents/bin/coretools; some package versions expose the folder as content/bin/coretools instead.
  4. Open the extension's SolutionPackager card, choose Select custom EXE, and select the extracted SolutionPackager.exe.

The extracted folder may also remain in Downloads, or it can be moved to any readable location such as C:\Tools\D365\CoreTools, a user-profile folder, or a network path accessible to VS Code. Select the actual EXE file, not the .nupkg or containing folder. Keep the complete extracted coretools folder because SolutionPackager.exe requires the adjacent SDK files. You may delete the original .nupkg or .zip after the extracted folder is in its permanent location.

When a custom EXE is selected, the agent validates:

  • the file is named SolutionPackager.exe and is readable;
  • it has a Windows executable signature and identifies itself as SolutionPackager;
  • Microsoft.Crm.Sdk.Proxy.dll and Microsoft.Xrm.Sdk.dll are beside the EXE.

If Windows blocks files downloaded from the internet, open Properties for the downloaded archive, select Unblock, and extract it again. See the official Microsoft SolutionPackager instructions.

Use Use managed copy in the same card to remove the override and return to the agent-managed version.

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, choose Select custom EXE in the sidebar or set d365UnpackingAgent.solutionPackager.pathOverride to an absolute EXE path.

Updates

1.5.x

  • Offline unpack — unpack a local solution .zip with only SolutionPackager; no sign-in, environment, or solution needed.
  • Reorganized, dependency-ordered sidebar — SolutionPackager and Offline unpack first, then an Online unpack group with Authentication (1) and Download & Unpack (2).
  • Read-only environment URL in Download & Unpack, mirroring the signed-in environment; switching environments resets that form.
  • Green/red status borders per card, and the setup cards collapse when a run starts so the Activity log stays in focus.
  • Determinate progress bar during runs and an Open folder action on completion.
  • Download only now clears the unpack folder field while it is hidden.

Support

  • Author: Jadhav Shubhamm — AI Developer
  • Email: sj.techconnect@gmail.com

🦊 CodeFox — Driving AI-Powered Delivery Excellence
© 2026 All rights reserved. MIT License.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft