PPtools.SolutionImportHelper 1.0.9

dotnet add package PPtools.SolutionImportHelper --version 1.0.9
                    
NuGet\Install-Package PPtools.SolutionImportHelper -Version 1.0.9
                    
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="PPtools.SolutionImportHelper" Version="1.0.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PPtools.SolutionImportHelper" Version="1.0.9" />
                    
Directory.Packages.props
<PackageReference Include="PPtools.SolutionImportHelper" />
                    
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 PPtools.SolutionImportHelper --version 1.0.9
                    
#r "nuget: PPtools.SolutionImportHelper, 1.0.9"
                    
#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 PPtools.SolutionImportHelper@1.0.9
                    
#: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=PPtools.SolutionImportHelper&version=1.0.9
                    
Install as a Cake Addin
#tool nuget:?package=PPtools.SolutionImportHelper&version=1.0.9
                    
Install as a Cake Tool

Solution Import Helper — XrmToolBox Plugin

A XrmToolBox plugin that detects missing dependencies before importing a Dataverse solution and automatically pulls them from a source environment, so the import succeeds on the first try.


Features

Step What it does
Analyze Stages the solution in the target org and reads the import job XML to list every missing dependency.
Find on Source Queries the source org to discover which solution contains each missing component.
Import Selected Deps Exports those solutions from the source org and imports them into the target org.
Import Solution Imports the original solution now that dependencies are satisfied.

Prerequisites

  • Visual Studio 2022 (or the .NET CLI)
  • .NET Framework 4.6.2 SDK
  • XrmToolBox installed (for testing)
  • Two Dataverse environments: source (has the deps) and target (import destination)

Build

cd SolutionImportHelper
dotnet restore
dotnet build -c Release

The output DLL goes to bin\Release\net462\SolutionImportHelper.dll.


Install in XrmToolBox

  1. Copy bin\Release\net462\SolutionImportHelper.dll (and all its dependencies) to:
    %APPDATA%\MscrmTools\XrmToolBox\Plugins\
    
  2. Launch XrmToolBox → Tool Library should show "Solution Import Helper".

Workflow

TARGET ORG connection (XrmToolBox toolbar)
     │
     ▼
[Browse] ── select solution .zip
     │
     ▼
[Analyze Dependencies]
  → Stages solution, reads ImportJob XML
  → Populates missing-dependency grid
     │
     ▼
[Connect to Source Org] ── pick source environment
     │
     ▼
[Find on Source Org]
  → Queries solutioncomponent table on source
  → Marks each dep with the solution it lives in
     │
     ▼
  Check boxes for deps to resolve (all selected by default)
     │
     ▼
[Import Selected Deps]
  → Exports solution(s) from source org
  → Imports them into target org
     │
     ▼
[Import Solution]
  → Final import of the original solution

Architecture

SolutionImportHelper/
├── SolutionImportHelper.csproj
├── SolutionImportHelperPlugin.cs        ← MEF plugin entry-point
├── SolutionImportHelperControl.cs       ← WinForms UI + XrmToolBox wiring
├── SolutionImportHelperControl.Designer.cs
├── Models/
│   ├── MissingDependency.cs             ← Data model for one missing dep
│   └── ComponentType.cs                 ← Int → friendly name lookup table
└── Services/
    └── SolutionService.cs               ← All Dataverse API calls

Key API calls used

Purpose API
Detect missing deps ImportSolutionRequest (staged) + read importjob entity
Locate dep on source Query solutioncomponent joined to solution
Export from source ExportSolutionRequest
Import dep solution ImportSolutionRequest
Final import ImportSolutionRequest

Limitations & Notes

  • Staging imports a copy of the solution to detect dependencies; this may leave a partial import job in the target org. If needed, delete the job record from importjob after analysis.
  • Components marked NotFound on the source org must be resolved manually before the final import will succeed.
  • Large solutions may take several minutes to stage and export; the UI remains responsive via WorkAsync.
  • The plugin supports additional connections (XrmToolBox MultipleConnectionsPluginControlBase) for the source org — no extra toolbox plumbing needed.

Contributing

Replace "your-org" in SolutionImportHelperPlugin.cs with your GitHub org/username, then open a PR.

There are no supported framework assets in this 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.0.9 136 7/23/2026
1.0.8 181 7/5/2026
1.0.7 96 7/5/2026
1.0.6 130 6/30/2026
1.0.5 103 6/29/2026
1.0.4 104 6/29/2026
1.0.3 102 6/27/2026
1.0.2 109 6/27/2026
1.0.1 101 6/27/2026
1.0.0 115 6/27/2026