Installation

VerseDocs is a single managed solution zip. Import it and every action works immediately — there is no pre-import step, no Azure resource to provision and no prerequisite of any kind beyond a Dataverse environment.

Prerequisites

  • A Dataverse environment. A production or sandbox environment with Dataverse provisioned, a Power Platform Developer Plan environment, or a Dataverse for Teams environment upgraded to a full one.
  • Premium Power Platform licensing for the users who will call VerseDocs. Every vdocs_* action is a Dataverse Custom API, which is a premium Dataverse capability — the same tier that gates plug‑ins and custom connectors. Users holding Dynamics 365 or Power Apps per‑user/per‑app licenses already have it. This is a Microsoft licensing cost, not a VerseDocs one.
  • System Customizer or System Administrator security role, to import the solution.
There is no Entra app registration, no managed identity, no Azure CLI step and no elevated Entra privilege required to install or use VerseDocs. If you have seen instructions that mention creating a managedidentity record, they describe an older build; that path was removed deliberately because a mandatory pre-import step is incompatible with a one-click install.

Import the managed solution

  1. 1Get the managed solution zip (VerseDocs_<version>_managed.zip) from your purchase confirmation, or install from Microsoft AppSource.
  2. 2Open the Power Apps maker portal and select your target environment in the top-right environment picker. Check this twice — importing into the wrong environment is the most common install mistake.
  3. 3Go to SolutionsImport solution, browse to the zip, then NextNext Import.
  4. 4Wait. A few minutes is normal — registering the plug-in package is the slow part. When it finishes, check the import log has nothing red in it. A clean first import with no dependency errors and no missing-component prompts is the expected result.
The Power Apps Solutions list filtered to Managed, showing VerseDocs 1.0.0.0 and VerseDocs Samples 1.0.0.0 published by VerseBlocks.
After a clean import: two managed solutions, both from publisher VerseBlocks. VerseDocs Samples is separate and optional — seeing two rows does not mean you imported twice.

What the import installs

ComponentWhat it is
vdocs_*69 Custom APIs — the document actions themselves.
Plug-in packageThe engine (VerseDocs.Core, VerseDocs.Plugins) and every dependency it needs — the Open XML SDK, PDFsharp, ClosedXML, ImageSharp, ZXing and the rest — all bundled. Nothing else to install.
VerseDocs Admin appA model-driven app with Template Studio, Configuration, Usage and Licensing pages. Already built; you do not create it.
vdocs_templateThe table your templates live in, with its file column and data-binding manifest.
vdocs_usageA usage log table, a Recent Calls view, two charts and an admin dashboard.
Generate document buttonA command-bar button for record forms and grids, off for every table until you enable it.
Environment variablesvdocs_LicenseKey, vdocs_TelemetryOptOut, vdocs_TelemetryEndpoint and vdocs_EnableExportPdfDocument. All ship unset.

Verify the install

The fastest check is vdocs_Ping, which reports the build version, the license state and the environment it is running in. Call it from a flow, from the Licensing page in the admin app, or straight against the Web API:

GET, against your own environment
GET https://<yourorg>.crm.dynamics.com/api/data/v9.2/vdocs_Ping
Accept: application/json

A healthy response names the version and reports a license state. On a fresh install with no key that state is NoKey, which is correct, not an error — it is the trial.

Then open the admin app. In the maker portal go to Apps and open VerseDocs Admin. If Template Studio, Configuration, Usage and Licensing are all in the navigation, the import is complete and correct.
The VerseDocs Admin app open on Template Studio with Usage, Configuration and Licensing in the left navigation.
If the admin app opens and the left nav shows all four pages, the import landed.

Updating to a newer version

Two different operations are both called “importing a solution”, and they behave differently when a release removes something. This distinction matters more than it sounds.

UpdateUpgrade
How you get itThe default when you import over an existing solution.Choose Upgrade in the import wizard, or pac solution import --stage-and-upgrade.
Adds and changes componentsYes.Yes.
Deletes components the release droppedNo — they stay behind as orphans.Yes — the new version is applied as the complete picture.

So any release that retires a component must be applied as an upgrade. If you are unsure, an upgrade is always the safer choice.

Upgrades finish long after the progress bar does

Do not conclude an upgrade failed because you checked too early. On a solution this size the upgrade keeps working for several minutes after the CLI or the portal stops reporting progress, and an in-progress upgrade looks exactly like a no-op: the old components are still there because it has not got to them yet.
  • pac solution import returns exit code 0 even on a failed import. Its exit code is not evidence of anything.
  • Verify by querying for something you expect to have changed, and re-check after a few minutes before drawing a conclusion.
  • The solution row’s modifiedon timestamp advancing is a reliable sign the upgrade actually landed.

Uninstalling

Delete the managed solution from Solutions in the maker portal. Because the Generate document button is defined inside the solution rather than written into your tables’ own ribbons, removing VerseDocs removes the button with it and leaves no customisation layer behind on your tables.

Deleting the solution deletes the vdocs_template table and every template row in it, including the uploaded template files. Export anything you want to keep first.