Prefix Reserved
dotnet add package Microsoft.CrmSdk.XrmTooling.PackageDeployment --version                
NuGet\Install-Package Microsoft.CrmSdk.XrmTooling.PackageDeployment -Version                
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="Microsoft.CrmSdk.XrmTooling.PackageDeployment" Version="" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Microsoft.CrmSdk.XrmTooling.PackageDeployment --version                
#r "nuget: Microsoft.CrmSdk.XrmTooling.PackageDeployment,"                
#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.
// Install Microsoft.CrmSdk.XrmTooling.PackageDeployment as a Cake Addin
#addin nuget:?package=Microsoft.CrmSdk.XrmTooling.PackageDeployment&version=

// Install Microsoft.CrmSdk.XrmTooling.PackageDeployment as a Cake Tool
#tool nuget:?package=Microsoft.CrmSdk.XrmTooling.PackageDeployment&version=                

This package contains the following official Microsoft assemblies and has been authored by the Microsoft Common Data Service SDK team.
- Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageExtentionBase.dll

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

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Microsoft.CrmSdk.XrmTooling.PackageDeployment:

Package Downloads

A base package template that provides additional capabilities when deploying packages using the Power Apps Package Deployer tool.


The Capgemini Package Deployer template provides a base Package Deployer package template class with additional functionality when deploying packages with the Package Deployer.


OpenStrata.Deployment.Sdk contains the OpenStrata.Deployment.Sdk.dll which is used by OpenStrata Deployment and Package project types.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Microsoft.CrmSdk.XrmTooling.PackageDeployment:

Repository Stars
xRM CI Framework provides you with the tools automate the build and deployment of your CRM Solution. Using the framework to implement a fully automated DevOps pipeline will allow you to deploy more frequently with added consistency and quality.
Version Downloads Last updated 33,355 2/24/2023 5,767 12/15/2022 12,310 6/18/2022 19,909 12/9/2021 11,430 11/4/2021 74,129 4/12/2021 75,973 10/25/2020 35,477 7/15/2020 1,372 7/10/2020 1,715 7/3/2020 8,581 6/10/2020 7,997 5/19/2020 6,191 4/23/2020 8,098 4/3/2020 54,034 1/17/2020 7,164 12/12/2019 144,294 9/11/2019 17,221 7/17/2019 23,066 5/22/2019 83,169 2/25/2019 3,845 2/7/2019 29,804 1/26/2019 26,228 10/24/2018 20,838 9/17/2018 43,307 7/6/2018 23,977 4/25/2018 53,458 11/15/2017 13,084 10/23/2017 60,830 8/29/2017 94,715 3/22/2017 19,664 12/21/2016 26,612 12/10/2016 15,966 5/26/2016
8.1.0 3,365 5/3/2016
8.1.0-preview 1,679 4/21/2016
8.0.2 3,677 2/20/2016
8.0.0 2,160 12/3/2015 39,137 8/26/2015
7.1.0 121,168 4/28/2015
7.1.0-preview 1,428 3/17/2015
7.0.1 1,728 3/10/2015 2,757 12/2/2014
6.1.1 2,032 9/18/2014 1,809 7/15/2014
6.1.0 2,156 6/17/2014

This package contains assemblies for Dynamics 365 (online and on-premises). These assemblies require application development using the Microsoft .NET Framework 4.6.2 or later.
No public updates.
No public updates.
No public updates.
No public updates.
Updates to internal architecture of PD.  
No end customer impacting changes
Uptook New CDS SDK drop.
Fixed an issue preventing logs from being generated correctly,  Logs should once again write to the log directory
Includes updates for new XrmSDK and some logging updates.
Introduced binding redirect for Microsoft.IdentityModel.Clients.ActiveDirectory dll.
Package developers can define error type as application error or publisher error - internal only.
Enhanced PD logs and temporary file delete logic.
Enhanced PD logs and raise fail event immediately when AfterPackageImport returns fail.
Enhanced PD to pass more error details to invoker of PD lib
Added support for France and New US Geo's
Published PackaDeployerException class which can be used by package developers
Enhanced PD to bubble up error details to invoker of PD lib with progress status in case of failure - internal only
Internal updates - No Public changes
Internal updates - No Public changes
Logging updates for async import error scenario.
Logging Updates
Added support for default async mode for DeleteAndPromote, regardless of how a given package is configured.
Reverted change for RaiseFail event which done in version  Now it will not cause PD to stop with an overall failure and stick to old behavior of continuing package installation.
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.
Added native support for handing throttling messages from server.
Improved handling of retry logic for blocked imports due to concurrent metadata import
Corrected an error that occurs when a Async Upgrade Fails due to a recoverable server issue.  PD will attempt to recovery correctly vs aborting and requiring a restart.
Correcting Dependancy Info on Package
Fixed bug in CrmServiceClient which would cause some OnPrem connections to fail with an error "Item already added to List"
Minor Pref 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.
.Net 4.6.2 is now required for this assembly.
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)
Added new property for packages developers called CurrentPackageLocation.
   This will provide the path to the drop location for your package assets directory to your package.
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.
Updated install flows to more correctly trigger failures on failures within user code or data import.

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
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 CMT Lookup processing logic that was causing incorrect linking where the data set includes records that require related lookup records which share the same default name. 9.0 Initial Release
Updated for 9.x assemblies and Xrm.Tooling 3.x
Addressed an issue where PD would fail to handle a previously failed upgrade, ending up getting stuck on trying to rerun upgrade on a solution that is already partly through the process.  New behavior will cause PD to recognize this state and attempt to complete the upgrade vs calling Import again.  Package developer note:  When this state occurs the upgrade action (RunSolutionUpgradeMigrationStep) call will NOT be called as its expected that this code would have run on the prior run that failed.

New package function: OverrideSolutionImportDecision support to override import decisions for individual solutions. This function will allow you to skip a solution or force it to update where PD would have skipped, other functions are limited at this time. Fix of dependency issue in nuget package. Now properly requires .net 4.5.2 as a baseline Assembly version changed to
When Logging provider is supplied, it is now being pushed to package log sinks.
Fixed support for using flat file import ( CRM native support ) on non-English organizations
Fixed an infinite wait loop that could occur if DeleteAndPromote call failed during upgrade to CRM with a Connection Timeout error.
Fixed an issue in the upgrade detection logic that incorrectly compared versions of source and target solution, under some conditions a newer version of the solution on import was incorrectly determined to be an older version causing it to be skipped.
Added Binding redirect logic to attempt to handle some versioning issue with supporting assemblies.

Support for new App.Config setting called  SuppressImportLog, when true will prevent the detailed log from being written to disk.

Capability notes, *important!:
The function PreSolutionImport(string solutionName, out bool overwriteUnmanagedCustomizations, out bool publishWorkflowsAndActivatePlugins); has been flagged as Obsolete and will no longer be called.
It has been REPLACED by the function:
PreSolutionImport(string solutionName, bool solutionOverwriteUnmanagedCustomizations, bool solutionPublishWorkflowsAndActivatePlugins, out bool overwriteUnmanagedCustomizations, out bool publishWorkflowsAndActivatePlugins);

8.1.0: CRM Online 2016 Update 1
8.1-preview: Pre-release CRM Online 2016 Update 1
8.0.2: UR1 (Update Rollup 1)
8.0.0: RTM