Skip to content

How-to: solution

Solution lifecycle recipes, taken from the CRMWorx build (§1, §5). See the CLI reference for every flag.

Create a publisher, then the solution (zero web-UI prerequisite)

crm --json solution create-publisher --name crmworx --display CRMWorx --prefix cwx \
  --option-value-prefix 30000 --if-exists skip
crm --json solution create --name CRMWorx --publisher crmworx --if-exists skip
Create both from the CLI before any metadata work (#34); with a named profile active they auto-wire publisher_prefix=cwx and default_solution=CRMWorx. --if-exists skip makes re-runs a no-op.

List the components in a solution

crm --json solution components CRMWorx
Returns component type + objectid rows (componenttype 9 = option set, 1 = entity) — use it to verify the model landed.

Export the unmanaged solution to a zip

crm solution export CRMWorx -o docs/artifacts/crmworx.zip
Reports the output path, byte count, managed: False, and the action that ran (falls back to synchronous ExportSolution when ExportSolutionAsync is disabled on-prem). On success the zip is written to -o/--output; adding --json only changes the printed result envelope.

Publish all customizations

crm --json solution publish-all
Calls PublishAllXml so newly created metadata, views, forms, charts and dashboards surface in the app.