Skip to content

Solutions

pete-mc edited this page Jul 7, 2026 · 15 revisions

Solutions

A Solution project lets you export a Dataverse solution to source control, unpack it into individual components, and pack/import it again. Under the hood it uses the cross-platform Power Platform CLI (pac) (pac solution export/unpack/pack/import) — so it runs on Windows, macOS, and Linux.

Solution menu

Configuration

Solution settings live in spkl.json in the project root (this is now just a config file — no external tool is involved):

{
  "solutions": [
    {
      "solution_uniquename": "MySolution",
      "packagepath": "MySolution",
      "packagetype": "both_unmanaged_import"
    }
  ]
}
  • solution_uniquename — the unique name of the solution in Dataverse.
  • packagepath — the folder the solution is unpacked into / packed from.
  • packagetypeUnmanaged, Managed, or Both (mapped from the spkl value).

Your Dataverse connection is set up during project initialisation; the extension creates a pac auth profile from it automatically for each operation.

Extract Solution

Exports the solution from your environment and unpacks it into packagepath. Unpacking splits the solution into per-component files, which is ideal for source control and diffing. For a Both package type, both the unmanaged and managed solutions are exported and unpacked together.

Pack Solution

Packs the local unpacked folder back into a solution .zip (under bin/) — a local operation that needs no connection. Use it to produce an artifact for a release pipeline, or before importing.

Deploy Solution

Packs the folder and imports the solution into your Dataverse environment, publishing customizations. Use this to push local changes to a development environment.

CI/CD

Because packing is a plain pac command with no editor dependency, you can reuse the same folder in any pipeline (GitHub Actions, Azure DevOps, etc.) with the Power Platform CLI or the Power Platform Build Tools, running pac solution pack / pac solution import against your target environments.

Clone this wiki locally