PowerShell wrapper for CDS Package Deployer

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name Microsoft.Xrm.Tooling.PackageDeployment.Powershell -RequiredVersion

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More


Microsoft Common Data Service Team


© 2020 Microsoft Corporation. All rights reserved

Package Details



Get-CrmPackages Import-CrmPackage


This module has no dependencies.

Release Notes

Current Release:
Fix for an issue reported where related objects were not being correctly identified by name and thus not correctly linked to importing records
This only impacted imports where the related entity did not have comparison keys
Updates to internal architecture of PD.  
Corrected a possible bug in solution install leg that would result in a "Null Object" Error
Added in memory configuration parsing logic
Optimized dependency checking logic
Cleaned up extra lines in logging output.
Adding Logging for time taken during configuraiton parsing to aid in performance info.
Uptook New CDS SDK drop.
Updated the Import-CrmPackage cmdlet to accept the output of the Get-CrmPackage cmdlet.
This will allow a used of the powershell module to use Get-CrmPackage to find the package that they want, then pass that package info directly to Import-CrmPackage.
   Fixed an issue preventing logs from being generated correctly,  Logs should once again write to the log directory
   Added Improvements to Async solution import logic
   Updated for current xrm sdk
Includes updates from the CMT.
ADAL 3.19+ is now required for this module.  ADAL 2.x clients will need to be updated to use ADAL 3.x+
Added support for France and New US Geos
Added new behavior to return the full login error when initial connect fails in LastException.
Fixed https activation issue introduced by .net 4.8. - This should no longer require http activation to be enabled on windows.
Fixed issue where a long running cloned connection loses its access token.
Logging Updates
Added support for forcing all packages to run Sync mode, regardless of how a given package is configured.
Modified RaiseFail event for RaiseFail generated from the package.  New behavior will cause PD to stop with an overall failure. - (Nuget-
Added native support for handing throttling messages from server.
Improved handling of retry logic for blocked imports due to concurrent metadata import


NOTE: Notes Below are synced to Nuget Release Found here:
Correcting Dependency Info on Package
Fixed bug in CrmServiceClient which would cause some OnPrem connections to fail with an error "Item already added to List"
Minor Perf Improvements
Updated to include Fixed version of CrmServiceClient and login control for new US Geo ( US Gov High )
Added support for Preferring Affinity with a given node to improve cache hit success rate.
Fixed a user reported issue that would cause an import patch to fail due to being misapplied.
Fixed a user reported issue that would cause the incorrect version of a solution to be imported under some circumstances during update.
Added better error detection for failed Async Jobs when using Async Solution Import.
Major updates to error logging to make logs more concise and useful.

Corrected an issue which would occur while importing a package that contained an upgrade for a deployed solution, where a prior version upgrade had failed leaving a holding solution. The system will now attempt to apply the current holding solution, and upon success, apply the new upgrade contained.
Picked up updated CrmServiceClient (Microsoft.Xrm.Tooling.Connector)
Corrected use of strong types inside Package Deployer to allow it to work properly with packages that also include overlapping strong typed objects.
Corrected a case where Async Solution Deployment could fail and not be correctly caught by PD.
Corrected a spelling issue on the return of Get-CrmPackages,  Property PackageInfo.PacakgeAssemblyLocation was renamed to PackageInfo.PackageAssemblyLocation
Updated install flows to more correctly trigger failures on failures within user code or data import.

UseAsyncForSolutionImport - added to commandlet
This setting controls the default behavior of the import operations for Package Deployer.
If set to true, Package deployer will attempt to use an Async Pattern for all solution operations where possible to do, given the server configuration.
The default setting for this is false ( sync mode )

Importconfig.xml - Solutions node updates.
Added requiredimportmode as an option to force an Async or Sync import behavior for a given solution.
This includes, upgrade or new install.
Valid settings for this property are :
async -  Requires the Import of this solution to be done in an async manner if the server supports it.
sync - Requires the import of this solution to be done in a sync manner if the server supports it.
Default behavior follows the default setting for the Package Deployer Core Process.
Updated with Xrm.Tooling.Connector support
Added new dependencies for Xrm.Tooling.Connector.dll
Fixed issues that caused unhandled exceptions to be thrown when a package resulted in an error.
Added new notifications in logs and UX for faults (where applicable).
Added logic to detect stuck solution import and abort the import process
Fixed a bug in Configuration Migration tool Lookup processing logic that was causing incorrect linking where the data set includes records that require related lookup records that share the same default name.
9.0 Initial Release
Breaking Change!
Refactor of this package to support module invocation instead of assembly registration. This is done to support direct inclusion from nuget by ALM \ SDL tasks.
To register module, run the RegisterXRMPackageDeployment.ps1 -
Initial release


  • Microsoft.Xrm.Tooling.PackageDeployment.Powershell.nuspec
  • Microsoft.Crm.Sdk.Proxy.dll
  • Microsoft.Deployment.Compression.Cab.dll
  • Microsoft.Deployment.Compression.dll
  • Microsoft.IdentityModel.Clients.ActiveDirectory.dll
  • Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll
  • Microsoft.Rest.ClientRuntime.dll
  • Microsoft.Uii.AifServices.dll
  • Microsoft.Uii.Common.dll
  • Microsoft.Uii.Common.TypeProvider.dll
  • Microsoft.Uii.CrmEntityManager.dll
  • Microsoft.Xrm.Sdk.Deployment.dll
  • Microsoft.Xrm.Sdk.dll
  • Microsoft.Xrm.Sdk.Workflow.dll
  • Microsoft.Xrm.Tooling.Connector.dll
  • Microsoft.Xrm.Tooling.CrmConnectControl.dll
  • Microsoft.Xrm.Tooling.Dmt.DataMigCommon.dll
  • Microsoft.Xrm.Tooling.Dmt.ImportProcessor.dll
  • Microsoft.Xrm.Tooling.Dmt.MetadataHandler.dll
  • Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageCore.dll
  • Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageExtentionBase.dll
  • Microsoft.Xrm.Tooling.PackageDeployment.Powershell.dll
  • Microsoft.Xrm.Tooling.PackageDeployment.PowerShell.dll-Help.xml
  • Microsoft.Xrm.Tooling.PackageDeployment.Powershell.psd1
  • Microsoft.Xrm.Tooling.PackageDeployment.Powershell.psm1
  • Microsoft.Xrm.Tooling.Ui.Styles.dll
  • Microsoft.Xrm.Tooling.WebResourceUtility.dll
  • Newtonsoft.Json.dll
  • System.Management.Automation.dll

Version History

Version Downloads Last updated 47,834 6/18/2022 210,004 11/4/2021 2,045,952 4/12/2021 694,858 10/25/2020 120,015 7/15/2020 65,626 7/10/2020 2,868 7/3/2020 (current version) 194,167 5/19/2020 8,501 4/23/2020 208,149 4/3/2020 74,595 1/17/2020 5,499 12/12/2019 99,484 9/12/2019 291 7/18/2019 76,481 2/27/2019
Show less