CrmSdk. XrmTooling. CoreAssembly
This package contains the official Microsoft.Xrm.Tooling.Connector assembly and has been authored by the Microsoft Common Data Service SDK team.
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.
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 firstname.lastname@example.org is used to login into CDS, then a second application is lauched and the user email@example.com 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.
**POSSIBLE BREAKING CHANGE**
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.
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.
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 Json.net 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 dependancies:
Json.net version 184.108.40.206
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.
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.
220.127.116.11: Fixed to allow External Authentication Type to function in released versions of Xrm.Tooling.Connector.dll
18.104.22.168: 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.
22.214.171.124: Fix of dependency issue in nuget package. Now properly requires .net 4.5.2 as a baseline
126.96.36.199: Assembly version changed to 188.8.131.52
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.
184.108.40.206: 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)