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

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

This package contains the official Microsoft.Xrm.Tooling.Connector assembly and has been authored by the Microsoft Common Data Service SDK team.

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 (96)

Showing the top 5 NuGet packages that depend on Microsoft.CrmSdk.XrmTooling.CoreAssembly:

Package Downloads
MscrmTools.Xrm.Connection The ID prefix of this package has been reserved for one of the owners of this package by

Provides Winforms control to connect to Microsoft Dynamics CRM / 365 for Customer Engagement and Microsoft Dataverse deployments

FakeXrmEasy.9 The ID prefix of this package has been reserved for one of the owners of this package by

Utilities to streamline unit testing in Dynamics CRM 365 by faking the IOrganizationService against an In-Memory context which runs blazing fast.

Microsoft.CrmSdk.XrmTooling.PackageDeployment The ID prefix of this package has been reserved for one of the owners of this package by

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

Microsoft.CrmSdk.UII.CommonAssemblies The ID prefix of this package has been reserved for one of the owners of this package by

This package contains the following official Microsoft assemblies and has been authored by the Microsoft Dynamics 365 SDK team. - Microsoft.Uii.AifServices - Microsoft.Uii.Common - Microsoft.Uii.Common.Configuration - Microsoft.Uii.Common.Listeners - Microsoft.Uii.Common.Logging - Microsoft.Uii.Common.Logging.Providers - Microsoft.Uii.Common.Providers - Microsoft.Uii.Csr.Core - Microsoft.Uii.Csr.Win32Api


Tool to generate TypeScript declaration files for MS Dynamics 365/CRM client-side coding.

GitHub repositories (10)

Showing the top 5 popular GitHub repositories that depend on Microsoft.CrmSdk.XrmTooling.CoreAssembly:

Repository Stars
Sample code for Power Apps, including Dataverse, model-driven apps, canvas apps, Power Apps component framework, portals, and AI Builder.
An application that gather multiple tools to ease the customization and configuration of Microsoft Dynamics CRM/365/Dataverse/PowerApps
Dynamics 365 Workflow Tools is a Community solution that expands Microsoft Dynamics 365 (CRM) Workflow features with lots of new posibilities. This helps you to build very advanced Codeless solutions in CRM.
Code Replica for Microsoft.PowerPlatform.Dataverse.Client and supporting nuget packages.
An open-source library for building Dynamics CRM XRM solutions using Script#, jQuery & Knockoutjs.
Version Downloads Last updated 100,666 11/28/2023 23,539 11/8/2023 162,475 7/20/2023 134,857 4/21/2023 2,492 4/20/2023 54,130 3/13/2023 464,544 7/11/2022 261,109 4/25/2022 214,546 3/9/2022 472,749 10/25/2021 99,866 9/22/2021 135,254 8/30/2021 2,709 8/29/2021 86,876 8/25/2021 580,188 4/29/2021 63,063 4/7/2021 354,073 1/6/2021 180,672 11/20/2020 12,114 11/18/2020 447,034 8/13/2020 75,244 7/15/2020 60,934 7/1/2020 141,630 6/12/2020 48,632 6/2/2020 237,816 4/20/2020 2,431 4/20/2020 91,907 3/25/2020 228,724 2/11/2020 38,258 2/7/2020 196,048 12/18/2019 188,604 12/5/2019 162,178 10/25/2019 33,037 10/16/2019 222,492 9/11/2019 214,208 7/23/2019 37,334 7/18/2019 113,801 5/22/2019 250,717 2/25/2019 128,857 2/7/2019 242,513 10/24/2018 191,540 9/17/2018 281,829 7/6/2018 127,891 4/25/2018 329,042 11/15/2017 942,041 10/23/2017 58,377 8/29/2017 611,514 4/12/2017 74,435 3/22/2017 257,738 12/21/2016 224,688 12/10/2016 164,080 5/26/2016 22,342 5/9/2016
8.1.0-preview 2,164 4/21/2016
8.0.2 19,191 2/20/2016
8.0.0 75,816 12/3/2015 44,988 8/26/2015
7.1.0 129,041 4/28/2015
7.1.0-preview 1,853 3/17/2015
7.0.1 3,940 3/10/2015 7,128 12/2/2014
6.1.1 22,878 9/18/2014 2,648 7/15/2014
6.1.0 7,144 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.
Updated CoreSdk assemblies dependencies.
Added new properties to Organization detail to report Schema Type and Deployment Type.
Fixed issue with DataCenter ID not populating in Organization Detail object returned by the client.
Added StageSolution API to Deployment Extensions.
Added Support for "StageSolution" as source for import solution.  to use it, you must first stage the solution, then call importsolution passing the staged solution id.
Added GetAsyncOperationStatus API to Deployment Extensions. This provides a simple way to get the status of an async operation.
Dependency changes:
   Microsoft.Rest.Client moved to 2.3.24 due to CVE-2022-26907.
*** Minor version bump ***
WS-TRUST Disabled by Default now - WS-TRUST requests will be auto redirected to OAuth with never prompt behavior. This applies to online only.

Updated Newtonsoft dependencies to 13.0.1 per
Fixed a "Duplicate Key Error" issue created when manually adding some request parameters to an organization request, while also setting the appropriate property in the client
Fixed issue with environments in new GEO's not being returned to the caller of discovery.  Unknown GEO's will now appear as their GEO ID or as "Unknown"
Updated Throttled Telemetry | Logging alert to be visible for Warning vs Verbose.
Added Discovery Filter support for Korea and Norway GEO's
Added support to force WS-TRUST based auth flows to oAuth, this feature is disabled currently, but will be enabled in the future as default
Unsealed CrmServiceClient Class to allow for inheritance
Fixed an issue with null values being sent to the API causing a null exception to be raised.
Added new property "RecommendedDegreesOfParallelism".
   This property will report the recommended number of threads for communicating with Dataverse.
Fixed toggling EnableAffinityCookie a connection was created would not respect the requested state.  It will now properly respect the state of the EnableAffinityCookie property.
Updating Base dependency for CrmSdk.CoreAssemblies to +
Updated for Current Dataverse SDK
Updated behavior of ImportSolutionAsync to leverage updated Dataverse behavior post 9.2 release.
Updated Display name for Northamerica 2 Region to reflect that it is more commonly know as GCC.
Updated Newtonsoft.Json to v11.0.2 to match Dataverse server.
Adding EnableAffinityCookie to allow for override of Affinity behavior when interacting with Dataverse.
   In general, users should not manipulate this property. more details can be found here:
Adding support for enhanced features for solution import.
Added support to auto retry 503 server unavailable network errors
Added support to allow for callers to add custom headers to the request to Dataverse - this is intended for Microsoft releated consumers only.
Fixed an issue where BypassPluginExecution property on request was not being understood properly by the server.
Updated minimum required Microsoft.Xrm.Sdk.dll assembly version to Microsoft.CrmSdk.CoreAssemblies.
Warning!, failure to update to this or higher level assembly will result in the following error:
       Method not found: 'Void Microsoft.Xrm.Sdk.ParameterCollection.AddOrUpdateIfNotNull(System.String, System.Object)'.
Added new public property to Read out InMemory Logs in string list format or Tuple(datetime,logevent) format.
Added new public property for OrganizationDetail Information called "OrganizationDetail" for the currently connected environment.
Added new enum for ImportSolution additional property options called "ImportSolutionProperties" - this contains valid options for additional properties for the ImportSolution handler
Adding Switzerland Geo to Regions List.
Added support for bypassing custom Plug-in Execution during SDK Operation.  
   This is a special use capability that requires a specialized permission in the CDS infrastructure to use.
   Currently this is only permitted for use by users that have the System Administrator Security Role.
Fixed an issue with .Clone not correctly supporting adding telemetry handlers to cloned connections
Fixed an issue with telemetry for the client that was using incorrect format for useragent content
Added initial support for in memory log capture support.
Fixed an issue with sovereign cloud discovery reference data that would prevent a login control from picking the correct global discovery server when connecting.
Fixed Authority property data loss post clone process
Fixed an error with connection string based IFD Auth flows that slipped though testing.
Note: connection strings for IFD should no longer use the formation host/org and instead just use the format https://org.hostname/.  this is the same pattern used for connecting to online.
Fixed an error where discovery would be used when using AD and IFD to connect to onpremise even if connection strings where used.
Up-taking new CoreSDK release.
Fixed an error with setting CallerId when ClientSecret Auth type is used.
Thanks for all the bug reports on this and repro's that really helped us run it down.
Correcting an internally Nuget dependency issue.  No Public changes
Up-taking new CoreSDK release
Up-taking new CoreSDK release
Internal fixes to unify the way in which online and onprem instances were determined from the URI provided.
Added new Static Property on Utilities called IsValidOnlineHost, this takes a URL and determines if it a valid OnLine URI for the CDS Service
Updated CRMSDK baseline dependency to match what is currently required for this assembly to function correctly
Fixed a bug Null Object Error that would occur occasionally during connect when many concurrent connects were run.
This would typically happen if a developer used a Task.Wait behavior to create a stack of connections at once.
Fixed a bug that would prevent logs from being generated even when verbose tracing was enabled.
Added Support for new properties in discovery response.
Tenant Id - ID of the tenant that the instance resides in
Environment Id - ID of the PowerPlatform Environment that the instance resides in
UrlName - Host name for the target instance.
Fixed a bug where the second ( or third ) connection string attempt in the same process would cause the client to try to reuse the current connection.
Fixed a bug where the SDK Version Property was not properly returning from the CrmServiceClient
Fixed a bug with how errors are handled when they are raised from ADAL 3.19+.  MFA Force Login will now work properly again.
Fixed an issue with Current user login failing after discovery process.
Added 3 new GEO's to Selection List.
Region Name - RegionCode:
United Arab Emirates - UAE
South Africa - ZAF
Germany (Go Local) - GER
Updating for CDS/XRM release
Updated default response sizes to support more verbose error messages from CDS
ADAL 3.19+ is now required for this library.  ADAL 2.x clients will need to be updated to use ADAL 3.x+
ImportSolution, ImportSolutionAsync method signature was changed to remove optional "solutionname" parameter. This was intended for internal use only.

Added Support for Current User ID login when using Online flows with oAuth ( Including constructor/connection string support )
Added Support for ClientID Secret Auth when using oAuth flows. ( Including constructor/connection string support )
Fixed an issue with Clone that would not clone the Retry Properties if they were set by property and not via App.config
Optimized Token Refresh logic for oAuth connections.
Updated Telemetry some Telemetry information to report version of CrmServiceClient in use
Added support for France and New US Geo's
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.
Added native support for handing throttling messages from server.
Fixed issue where a cloned connection's token could time out in a way that was not detected.
When failing, this would result in a mid operation Authentication failure reporting something like 'Anonymous Access Failed'
Added Support for China Geo
Minor changes to logging of Import Solution Activities
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 Property to get current accesstoken to be used for Token Exchange requests. - Only available in oAuth mode
Fixed User reported bug with Early Binding not working correctly for WS-TRUST based auth type.
.Net 4.6.2 is now required for this assembly.
Warning! : by User request, the limitation on max ADAL version has been removed from this package. However anything higher then ADAL 2.9.x will cause this assembly to fail when using oAuth based authentication.
Added resiliency to "GET" operations in the API to improve API reliability.
Added Support for new GEO,  "USGov High" with deploymentRegion=USGov
Added New Property called "ForceServerMetadataCacheConsistency"
This will force the CDS server to refresh the current metadata cache with current DB config.
Note, that this is a performance impacting property.
Use of this flag will slow down operations server side as the server is required to check for consistency of the platform metadata against disk on each API call executed.
It is recommended to use this ONLY in conjunction with solution import or delete operations.
Updated default settings for Retry of retryable failures,  Delay between retrys is now 5 seconds with a max retry count of 10
Major cleanup pass on logging of errors,  Error logging should be more concise now.
Fixed a bug where the request id property, when passed on an organization request or webRequest, would not be honored.
Added Request Id's to Async requests for SolutionImportAsync and DeleteAndPromoteSolutionAsync.
Added verbose log events for reporting request ids from Async requests.
Fixed a bug that would occur when using oAuth based login where the same user windows session  ( login to windows ) was used to then connect to more than one user of CDS/CRM in the same domain.
Example of failure:
user contoso\Jdoe (shared account) is used to login into a windows desktop.
On that desktop is used to login into CDS,  then a second application is launched and the user is used to login into CDS.
This would result in login failure for the second user with a error indicating that ADAL could not determine which token to use to login.
Fixed a bug in ExecuteCrmWebRequest where some http success codes would be incorrectly seen as a fault.

Added new property on CrmServiceClient called MaxConnectionTimeout to allow you to set MaxConnectionTimeout of any given action.
This property works in conjunction with the existing AppSetting MaxConnectionTimeoutMinuets that can be set in the app.config file.
if both are set, the property on CrmServiceClient is what is used.
Note:  this is a global property and cannot be changed once the connection is established.
Note2: this is subject to network controls imposed by the network between your client and the CDS Service endpoint.

Added new property on CrmServiceClient called SessionTrackingId to allow you to track all SDK operations made in a process as a given session.
When set, all operations executed by your application via this CrmServiceClient will be tagged with SessionID you provide.
This property is primary used by Microsoft Support to help troubleshoot issues, and if available, will speed the identification of issues.

Updated behavior to block use of token cache files when the setting CacheCredentials = false
Updated behavior of ExecuteCrmWebRequest to auto include oData 4.0 default headers for CDS.
This call now includes the following headers automatically:
These headers can be overridden by passing the same key with the updated value via the customHeaders parameter.
Updated behavior of error loggers to include SessionID when present and tag root errors with a visual key " |=> " to allow for parsing.

Updated behavior of connections string to *NOT* use discovery by default. This will require the URL passed to be the correct URL to connect to the CDS instance
Fixed a bug with using ExecuteCrmWebRequest where SkipDiscovery was also used that would cause the command to fail with a malformed URI error.
Fix to support SSO login, issue manifested as unable to execute a SSO login on second attempt.
Fix to make local metadata cache instance aware,
Issue manifested in a single client process where more then one connection was made to different CDS instances and the metadata helpers were used.  The Metadata would not be instance specific.

Streamlined .Clone support by removing unneeded WhoAmI validation call.
Added new .Clone override to allow a developer to pass an assembly reference to the .Clone method to use when establishing strong types for that connection.
Added addition error log details when a fault is detected
Added settings to control inline retry of requests when request is failed due to a network related issue.
ApiOperationRetryCountOverride - count of retries before the connection gives up.  default is 3.
ApiOperationRetryDelayOverride - Time the system waits between retries in seconds.  default is 1.
Added support for retrying SDK request if the server throws a retriable errors.
ImportSolutionToCrmAsync –
Returns an AsyncOperation ID that must be polled for solution Import competition or failure.
Note, Async jobs are subject to Async queueing and overhead, thus use this with caution.
DeleteAndPromoteSolutionAsync –
Returns an AsyncOperation ID that must be polled for competition
Note: DeleteAndPromote Async support is not generally available to all regions and versions of the platform.  If this not available the async job with fail immediately.
Note: Async jobs are subject to Async queueing and overhead, thus use this with caution.
Added support for retrying SDK request if the server throws a retriable errors.
Modified Package to include as a proper nuget reference.
Modified logging to report time lost to threading blocks (threading blocks occur when the service client is being used in a multithreaded application)
Added new dependencies: version
Added Support for Caller ID using AAD Object ID of caller -
Added new property on CrmServiceClient: CallerAADObjectId
Supported for 8.1 and later.
Added New Method ExecuteCrmWebRequest
This method supports using the XRM WebAPI directly from the CRMServiceClient.
Supports only oAuth and Certificate Auth connection types
Supported for 8.0 and later.
Supports Common request types and supports batch execute.
Added Global Discovery Support for Instance lookup
Global discovery is now used for all lookup, both regional and global (Online Region = Don't Know) when OAuth is used, except where special region rules are required.
Note: Germany and North America 2 are not scanned when Online Region = Don't Know is selected.
Added SkipDiscovery to all connection string variants.
Added Certificate support for constructor variants.
Fixed issue with allowing discovery selection using onPrem and OAuth.
Fixed an issue with older On-Prem ADFS instances that do not require a resource URI.

**Special notes:
Added additional telemetry support to connection requests
This will add the process name of the calling process (if available) to help with troubleshooting and support requests.
Added request IDs to all requests to help with troubleshooting and support requests.
These will appear only when verbose logging is enabled. Fixed to allow External Authentication Type to function in released versions of Xrm.Tooling.Connector.dll 9.0 Initial Release
Improved cache system for faster reconnects.
New interfaces to support certificate based auth.
Added support to skip discovery
Added Clone connection support of OAuth based connections
Added New Authentication type to support externally hosted auth.
**Note: Interface for Xrm.Tooling.Connector is *NOT* Final. there are new API interfaces that will be surfaced before GA.
Fix to memory leak in Microsoft.Xrm.Tooling.Connector.TraceLoggerBase.  Trace Listener collection would not be released within a process over a very long time frame over multiple connections. This would manifest as increasing memory consumption over a very long period.
Fix cleans this up on the .dispose() call on the CrmServiceClient.
Note: if you have built your own logger based on the Microsoft.Xrm.Tooling.Connector.TraceLoggerBase, you must call .dispose() when you are done with it to clean up the listener collection assigned to it.
Added Support for United Kingdom CRM GEO

Added new behavior to DynamicsFileLogTraceListener.  You can now specify a rolling log behavior based on log size.  To enabled this, add the MaxFileSize key set to the size in bytes and the MaxFileCount set to the max number of files to the Microsoft.Xrm.Tooling.Connector.DynamicsFileLogTraceListener in your app.config. Fix of dependency issue in nuget package. Now properly requires .net 4.5.2 as a baseline Assembly version changed to
Connection String support:
Corrected issues with connection string login to properly support the "never prompt" behavior.
Corrected issue were the connector would create a new instance of the connection unnecessarily – impacted ONLY connection string process.
RequireNewInstance=True will now properly create a unique connection instance, RequireNewInstance = false, will now properly reuse the cached instance of the connection,  default is ‘false’

Streamlined re-use of existing connection code when a new instance is called for by a constructor to remove unnecessary calls.
Modified Caching support to return the full object from in memory cache vs just the core connection.
Fixed token cache behavior to work properly when assembly is resident on an Azure WebApp or Function.
Fixed ADAL nuget dependency issue to allow assembly to consumed directly from nuget into an Azure function.
Fixed MFA ( multifactor authentication ) to properly handle password expired, and password to MFA scenarios

New Function Utility.GetOrgnameAndOnlineRegionFromServiceUri, Used to parse a Org URL for the correct online region and org name.
CrmServiceClient now implements IDisposable to allow for the object to be explicitly disposed. Updated to a newer version of Microsoft.IdentityModel.Clients.ActiveDirectory as required by the Xrm Tooling assemblies
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