-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Dataverse PowerTools is a Visual Studio Code extension that streamlines Dataverse / Dynamics 365 / Power Platform development. It scaffolds projects, manages your Dataverse connection, and runs the whole build/deploy loop — solutions, web resources, plugins, and portals — without leaving the editor.
Everything runs on the cross-platform Power Platform CLI (pac)
and the .NET SDK, so it works on Windows, macOS, and Linux.
| Project type | Highlights |
|---|---|
| Solutions | Export, unpack, pack and import Dataverse solutions with pac, ready for source control and CI/CD. |
| Web Resources | Write TypeScript, bundle with webpack, deploy straight to Dataverse, generate strongly-typed Xrm typings, and unit test with Jest + xrm-mock. |
| Plugins | Create plugin/workflow classes, register steps with CodeLens decorations, generate early-bound types, build with dotnet, deploy as a plugin package, and unit test with DataverseUnitTest. |
| PCF Controls | Scaffold field or dataset controls, build and push with pac, run the test harness with hot reload, or debug the deployed control on a live form. |
| Portals / Power Pages | Download and edit Power Pages site content with pac pages. |
Some features work across project types:
| Feature | Highlights |
|---|---|
| FetchXML Generator | Find the FetchXML already in your code, run it against your environment (answering for any placeholders), and edit it in a visual generator that writes back into the same literal. |
| Custom APIs | Define a Custom API as a file in your repo, generate its C# handler and a typed TypeScript client, and deploy it. |
| Debugging Plugins | Capture a real server-side execution and replay it under the debugger — see Profiling a Plug-in Run for the walkthrough. |
| Copilot tools | Ask Copilot Chat about your workspace's connection, components and requirements; opt in to let it deploy. |
| Multi-component repos | Several projects in one repository, sharing one connection. |
- Install the prerequisites (.NET SDK, Node.js, Power Platform CLI) — the Actions panel shows a live ✓/✗ check of all three.
- Open an empty folder in VS Code and click Initialise Project in the Actions panel (or run Dataverse PowerTools: Initialise Project from the Command Palette).
- Pick a project type, then sign in interactively or with a service principal and choose your environment and solution.
New to the extension? The built-in Getting Started walkthrough
(Help → Get Started, or Open Walkthrough in the panel) guides you through all of
this with self-completing steps.
See Getting Started for the full guide, and Connecting & Authentication for the sign-in options.
One repo can hold several components in subfolders — a plugin project AND a
web-resources project AND a solution, each a folder with its own
dataverse-powertools.json. Subfolder components inherit the workspace
connection (their settings file carries no credentials), the panel shows one
card per component, and Explorer right-click commands target the component that
owns the clicked file. Use + Add Component in the panel to add one — a
repo becomes multi-component the first time you do.
Everything lives in the Dataverse PowerTools activity-bar panel (all commands are also in the Command Palette). The panel shows your project as cards, with live state:
-
Environment card — the connected org, auth type, a connection indicator, and an
optional DEV/TEST/PROD badge (set
environmentLabelindataverse-powertools.json). Switch environment or update authentication from here. - Project card — one primary action (e.g. Deploy to <org>), a short row of everyday actions, and the rest behind ⋯ (including Restore dependencies). A status line shows the last operation (running / succeeded / failed).
-
Form Registrations (web resources) — every
RegisterEventdecoration found in your source; click a row to jump to the file. Registrations are applied automatically on every deploy. - Recent — the last few builds/deploys/typings runs with their outcome, so failures don't hide in the output channel.
| Plugins | Web Resources | Solutions | Empty workspace |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Getting Started — install, requirements, initialise a project.
- Connecting & Authentication — interactive vs service principal, secret storage, switching environments.
- Solutions · Web Resources · Plugins · PCF Controls · Portals / Power Pages
- FetchXML Generator · Custom APIs · Copilot tools · Multi-component repos
- Debugging Plugins · Profiling a Plug-in Run — capture a real execution and step through it.
- Troubleshooting — common issues and fixes.



