ImranAkram.XTB.AutoDeployer 1.2026.1.5

dotnet add package ImranAkram.XTB.AutoDeployer --version 1.2026.1.5
                    
NuGet\Install-Package ImranAkram.XTB.AutoDeployer -Version 1.2026.1.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ImranAkram.XTB.AutoDeployer" Version="1.2026.1.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ImranAkram.XTB.AutoDeployer" Version="1.2026.1.5" />
                    
Directory.Packages.props
<PackageReference Include="ImranAkram.XTB.AutoDeployer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ImranAkram.XTB.AutoDeployer --version 1.2026.1.5
                    
#r "nuget: ImranAkram.XTB.AutoDeployer, 1.2026.1.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ImranAkram.XTB.AutoDeployer@1.2026.1.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ImranAkram.XTB.AutoDeployer&version=1.2026.1.5
                    
Install as a Cake Addin
#tool nuget:?package=ImranAkram.XTB.AutoDeployer&version=1.2026.1.5
                    
Install as a Cake Tool

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)

Features

✅ Plugin Assembly auto-deploy

  • Watch one or more plugin assembly .dll files
  • When the file changes, the tool updates the corresponding Plugin Assembly in Dataverse
  • Logs actions and results in the tool output pane

✅ Web Resource auto-deploy

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 CrmName as: {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

✅ Plugin Package auto-deploy (Online only)

  • Watch a Dataverse Plugin Package .nupkg
  • Select the target Plugin Package record from Dataverse
  • On file change, the tool uploads the .nupkg to the package file column (pluginpackage.package)
  • This menu/feature is not available for on-prem connections

Requirements

  • 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)

Getting Started

1) Install / Run in XrmToolBox

  • 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

2) Connect to an environment

The tool is connection-aware. Configuration is stored per connection.


Using Plugin Assembly Watching

  1. Click AddPlugin Assembly
  2. Select a plugin .dll
  3. The tool starts watching the file
  4. Rebuild your project → when the .dll changes, Auto Deployer updates the plugin assembly
  5. 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.


Using Web Resource Watching

  1. Click AddWeb Resources

  2. 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)
  3. Click Scan

    • Adds matching local files to the grid (without duplicates)
    • Updates CrmName for existing rows based on the current Prefix
    • Auto-generates CrmName as: {prefix}/{relativePath}
  4. Set Watch = true for the rows you want actively monitored

  5. Click Validate

    • Checks local settings (duplicates, missing files)
    • If connected, checks whether the CrmName exists in Dataverse
    • Highlights cells:
      • Red = local error (duplicates / missing file) or not found in Dataverse
      • Green = OK
  6. Click Save

    • Configuration is saved for the current connection
    • Watchers are created for rows where Watch = true

How Web Resource Mapping Works

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:

  1. Uploads the new content to that Web Resource
  2. Optionally publishes (if enabled)
  3. 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.


Using Plugin Package Watching (Online only)

  1. Click AddPlugin Package (only shown for Dataverse online)
  2. Select a .nupkg file on disk
  3. Select the target Plugin Package from the environment
  4. The tool starts watching the file
  5. Rebuild/pack → when the .nupkg changes, Auto Deployer uploads the new package content
  6. Select an item in the list to see detailed logs

Configuration & Persistence

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)

Troubleshooting

“Not connected to an environment”

Connect in XrmToolBox first. Deployment requires an active service connection.

Nothing happens when files change

  • 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

Web resources show “Not found in Dataverse”

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 menu missing

Plugin Package deploy is Online only. It will be hidden for on-prem connections.


Roadmap / Ideas

  • Bulk enable/disable watch flags
  • Better summary view in MainControl (active watchers / config overview)

Contributing

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

License

MIT

Product Compatible and additional computed target framework versions.
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2026.1.5 122 1/12/2026
1.2026.1.3 74 1/9/2026

- Added Web Resources auto-deploy: watch local files and upload/update Dataverse Web Resources on change.
- New "Web Resources Manager" to configure root folder, prefix, scan patterns, and per-file mappings (enable/disable watch).
- Plugin Assembly auto-deploy improvements: support for multiple assemblies, custom paths, and file patterns.
- Plugin Package auto-deploy: watch .nupkg files created by Visual Studio and upload/update contained assemblies on change.
- Debounce support to avoid multiple uploads during rapid saves.
- Optional publish after update (configurable).
- Configuration is persisted per environment/connection.
- UI improvements: Add menu now supports both Plugin Assembly and Web Resources; watcher list supports both types; Remove selected works for both.