PPtools.SolutionImportHelper
1.0.2
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package PPtools.SolutionImportHelper --version 1.0.2
NuGet\Install-Package PPtools.SolutionImportHelper -Version 1.0.2
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.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PPtools.SolutionImportHelper" Version="1.0.2" />
<PackageReference Include="PPtools.SolutionImportHelper" />
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.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PPtools.SolutionImportHelper, 1.0.2"
#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.2
#: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.2
#tool nuget:?package=PPtools.SolutionImportHelper&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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
- Copy
bin\Release\net462\SolutionImportHelper.dll(and all its dependencies) to:%APPDATA%\MscrmTools\XrmToolBox\Plugins\ - 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
importjobafter 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.
-
- XrmToolBox (>= 1.2025.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.