Auto Deployer Tool in XrmToolBox
Auto Deployer is an XrmToolBox plugin that watches local files and automatically deploys updates to Dataverse / Dynamics 365.
It currently supports:
- Plugin Assembly auto-update (watch a
.dll, update the plugin assembly when the file changes) - Web Resource auto-deploy (watch selected local files and update/publish matching Dataverse Web Resources)
- Plugin Package auto-update (Online only) (watch a
.nupkg, upload it to a selected Dataverse Plugin Package)
- Watch one or more plugin assembly
.dllfiles - When the file changes, the tool updates the corresponding Plugin Assembly in Dataverse
- Logs actions and results in the tool output pane
Configure:
- Root folder (local build output folder)
- Prefix (Dataverse web resource prefix, e.g.
cint_) - Patterns (file globs like
scripts\*.js) - Publish after update (on/off)
- Debounce (ms) to batch rapid rebuilds
Workflow:
- Scan local folder to discover files that match the patterns
- The tool auto-generates
CrmNameas:{prefix}/{relativePath} - The grid is not meant to be edited directly (except the Watch checkbox)
- Watch only mappings where Watch = true
- Upload updated content on change, and optionally publish
- Watch a Dataverse Plugin Package
.nupkg - Select the target Plugin Package record from Dataverse
- On file change, the tool uploads the
.nupkgto the package file column (pluginpackage.package) - This menu/feature is not available for on-prem connections
- XrmToolBox (latest recommended)
- A Dataverse / Dynamics 365 connection with permissions to:
- Update Plugin Assemblies (plugin assembly mode)
- Update Web Resources + Publish (web resource mode)
- (Online) Update Plugin Packages (plugin package mode)
- Build the project
- Copy the plugin output to your XrmToolBox Plugins folder (or use your normal XrmToolBox dev workflow)
- Start XrmToolBox and open Auto Deployer
The tool is connection-aware. Configuration is stored per connection.
- Click Add → Plugin Assembly
- Select a plugin
.dll - The tool starts watching the file
- Rebuild your project → when the
.dllchanges, Auto Deployer updates the plugin assembly - Select an item in the list to see detailed logs
Tip: Keep your build output stable (same path) so the watcher doesn’t need to be reconfigured.
-
Click Add → Web Resources
-
Configure:
- Root folder
Example:C:\Git\MySolution\dist\gdpr - Prefix
Example:cint_ - Patterns (one per line)
Examples:scripts\*.js content\*.css images\*.png - Publish after update (recommended ON)
- Debounce (default 1500ms is a good start)
- Root folder
-
Click Scan
- Adds matching local files to the grid (without duplicates)
- Updates
CrmNamefor existing rows based on the current Prefix - Auto-generates
CrmNameas:{prefix}/{relativePath}
-
Set Watch = true for the rows you want actively monitored
-
Click Validate
- Checks local settings (duplicates, missing files)
- If connected, checks whether the
CrmNameexists in Dataverse - Highlights cells:
- Red = local error (duplicates / missing file) or not found in Dataverse
- Green = OK
-
Click Save
- Configuration is saved for the current connection
- Watchers are created for rows where Watch = true
For each watched mapping:
-
RelativePath is the local path relative to Root folder
Example:scripts\my_script.js -
CrmName is the Dataverse Web Resource name derived from Prefix
Example:cint_/scripts/my_script.js
On file change, the tool:
- Uploads the new content to that Web Resource
- Optionally publishes (if enabled)
- Logs result to the main log pane
Note: The grid columns are intentionally read-only (except Watch).
If the Prefix was wrong earlier, use Scan or Validate after correcting Prefix to rebuild names.
- Click Add → Plugin Package (only shown for Dataverse online)
- Select a
.nupkgfile on disk - Select the target Plugin Package from the environment
- The tool starts watching the file
- Rebuild/pack → when the
.nupkgchanges, Auto Deployer uploads the new package content - Select an item in the list to see detailed logs
Settings are stored using the standard XrmToolBox settings mechanism:
- Saved per connection (so each environment has its own config)
- Loaded automatically when the connection changes
- Watchers are re-created when you connect (based on saved config)
Connect in XrmToolBox first. Deployment requires an active service connection.
- Ensure the row has Watch = true
- Check that Root folder is correct and file really exists under it
- Some build processes trigger multiple change events; try increasing Debounce
- Verify permissions to update web resources / publish / plugin assembly / plugin package
Use Validate while connected:
- It will check existence in Dataverse and highlight missing ones
- If Prefix is wrong, fix Prefix then click Scan or Validate again
Plugin Package deploy is Online only. It will be hidden for on-prem connections.
- Bulk enable/disable watch flags
- Better summary view in MainControl (active watchers / config overview)
PRs and issues are welcome.
If you contribute:
- Keep changes backward compatible where possible
- Prefer small PRs focused on a single improvement
- Include short notes in the PR description on how to test
MIT