XrmToolkit


5.1.3 August 23, 2018

Bug Fixes

  • Fixed error that was being thrown when starting up Visual Studio
  • Fixed issue with multi-select option sets generating incorrectly for proxy classes

5.1.2 August 4, 2018

Bug Fixes

  • Fixed an issue with VS2015 not responding to any XrmToolkit menu actions.

5.1.1 August 1, 2018

New

  • Added support for the updated Xrm SDK (v9)
  • Added support for multi-value option sets

Bug Fixes

  • Fixed issue with the base proxy class template where a maximum of 5000 records were being retrieved for N:N relationships.
  • Fixed an issue where the base workflow class and workflow class templates were switched when generating them in VB.
  • Fixed issue where web resources were not downloading to correct file location.
  • Fixed an issue introduced by a VS 2017 update where you would not be prompted to login when opening a linked solution.

5.1.0 September 2, 2017

New

  • Updated the Xrm.d.ts files to be compatible with TypeScript >= 2.4
  • Added the ability to include the Microsoft.Xrm.Client.dll as one of the assemblies that can be ILMerged

Bug Fixes

  • Fixed issue where you could not publish a web resource with the file extension of '.htm'
  • Fixed an issue where you could not set a value to 'null' in a proxy class if the value had not been set previously.
  • Fixed an issue with not being able to navigate to a license file while registering XrmToolkit.
  • Fixed an issue with not being able to register a step that doesn't require an entity to be selected using the 'Register Multiple Steps' dialog.
  • Fixed an issue with not being able to link SSRS reports using the 'Link Items To CRM' command.
  • Fixed an issue with not being able to manually logon to an organization if the 'Prompt to Logon' setting is un-checked.
  • XrmToolkit Api - Provided a better error message when the project specified does not exist.

5.0.4 August 16, 2017

Bug Fixes

  • Fixed issue where you could not generate JavaScript or TypeScript intellisense files
  • Fixed issues with VB.Net Proxy class generation

5.0.3 August 12, 2017

New - Whats New Page

  • Support for Dynamics 365
  • Support for Visual Studio 2017
  • XrmToolkit API to allow deploying plugin and workflow DLL's without Visual Studio
  • Support for JSX and TSX files
  • Ability to download and edit email templates
  • Ability to download and edit system and user views
  • Ability to execute FetchXML queries and view the results directly in the Visual Studio IDE
  • Ability to download and edit Process (workflow) XML definition files
  • Improved serialization of the .xrm file so that less conflicts occur when working with multiple developers.
  • When 'getting latest' in Visual Studio, if the .xrm file has changed, you will now be prompted to reload it. Reduces the chance that users will overwrite changes others have made to the file.

Breaking Changes

  • Support for Visual Studio 2012 has been dropped.

4.5.0 August 4, 2016

New

  • The base plugin template now includes 2 structs for easily specifying both the message name and entity name when registering a plugin. New plugins or workflows automatically use these new structs for the registration of the logic in the constructor.
  • Support for LESS and SASS (scss) files have been added. You can also optionally specify GULP tasks related to these files that should execute before they are published to CRM.
  • Improved support and error handling for source control systems when files are locked and cannot be checked out for edit.
  • Moved the logic to check the signature of a plugin assembly until after the assembly has been built. This allows for a build task to sign the assembly.
  • When publishing multiple items that perform a Gulp task, if the same task is specified for more than one item then the task is only executed a single time, unless the 'Force Execution Of Gulp Task On Bulk Updates' is checked.
  • Updated the plugin registration window to use the 'DisplayName' as the name to display for plugin types when appropriate.
  • Added the ability to download and store Silverlight (Xap) webresources in a CRM assets project.
  • Added the ability to specify different locations for Xml, Xsl, and Silverlight Web Resources.
  • CrmSvcUtil generated classes now include properties for related entities.

Bug Fixes

  • Fixed an issue where a project that was linked to CRM would not appear to be linked. The project was located in a different location from the solution.
  • Fixed an issue where you could not download a CRM Solution that included the sitemap after editing the sitemap with the sitemap editor.
  • Fixed an issue for certain scenarios when a webresource did not have an 'Output File Name' on the Gulp settings tab.
  • Fixed an issue where CSS was not being minified properly.
  • Fixed the following error: "Unable to load one or more of the requested types" while trying to generate early bound/proxy classes.
  • Fixed some layout issues when using a high DPI monitor.

4.4.0 June 9, 2016

New

  • You can now specify a Gulp task to perform during the publishing of a TypeScript, JavaScript, Html, CSS or XML file. See here.
  • Added the 'assembly: Microsoft.Xrm.Sdk.Client.ProxyTypesAssemblyAttribute()' attribute to the Proxy Base Class allowing the XrmToolkit base classes to be used with a CrmServiceContext.
  • Added the ability to create a plugin or workflow in a specific directory by right-clicking on the folder and selecting the 'Create New Plugin or Workflow' button item under the 'CRM' menu.
  • Added the ability to specify an action to perform upon linking a file to CRM. Options are: 'Nothing', 'Download from CRM', 'Publish to CRM'.
  • Support for SSRS reports in Visual Studio 2015 (on-prem only). Download the SQL Server Data Tools for Visual Studio 2015.

Bug Fixes

  • Authentication now sets the 'useDefaultCredentials' to 'true' for networks using proxies. Resolves some issues related to connecting to CRM if you are using a proxy server.
  • Resolved an issue where creating a new 'CRM Assets' project would not save the links to CRM for the newly downloaded files.
  • Resolved issue where new CRM asset files would not get automatically added to the selected solution.
  • Fixed an issue where selecting an existing file to link to in the 'Link Items to CRM' dialog was not actually linking to the file.
  • Fixed an issue where enum descriptions containing quotes were not escaped properly.
  • Fixed an issue where the base plugin class and plugin template files were mixed for VB.net.

4.3.0 May 20, 2016

New

  • The 'Step Name' is now automatically calculated based on the entity, message name, and pipeline stage when using the 'Create Step' dialog in the plugin registration window. You can still manually change it if a different name is preferred.

Bug Fixes

  • Fixed an issue with the enum name for status codes being generated incorrectly for proxy classes.
  • Fixed conflict with System.Threading.Tasks.Task while generating a proxy class for the 'Task' entity in CRM.
  • Fixed formatting issue for proxy classes for cultures that use a comma instead of a period as a placeholder.
  • Fixed NewtsonSoft.Json deserialization error message.
  • Fixed issue with JavaScript intellisense files not generating correctly on initial creation.
  • Fixed an issue where the System.Collections.Immutable.dll could not be found.

4.2.0 May 16, 2016

New

  • OptionSet enums are now generated for all the specified entities and placed in a separate file titled 'OptionSetEnums' when using the CrmSvcUtil method for generating early bound classes.

Bug Fixes

  • Updated Visual Basic code templates to the new templates introduced in v4.
  • Fixed issue with early bound/proxy class generation during the plugin wizard where the current settings were not being used if the 'Custom Settings' option was chosen.

4.1.0 May 13, 2016

New

  • You can now compare your local file with what is currently in CRM by clicking a single button. For more info see here.
  • Improved 'Link Items to CRM' logic and added the ability to 'Find And Replace' part of the name in bulk.
  • The 'Step Name' is now automatically calculated based on the entity, message name, and pipeline stage when using the 'Create New Plugin or Workflow' wizard. You can still manually change it if a different name is preferred.
  • Added the 'Depth' and 'MessageName' property to the LocalPluginContext class.
  • If the corresponding JavaScript file of a TypeScript has not been generated, a message will appear when trying to publish the file instead of publishing an empty file to CRM.
  • Added a check to make sure that a TypeScript file compiles correctly before trying to publish to CRM.

Bug Fixes

  • When using the 'Update All Linked Items in CRM' menu item, the items were being published as well. The logic has been changed so that the items are no longer published.

4.0.1 May 11, 2016

New - Whats New Page

  • Official support for CRM 2016
  • Added support for the CRM LINQ query provider. You can now use the Proxy classes just like the early bound classes generated by the CrmSvcUtil. For more information regarding the LINQ provider please see the documentation here.
  • Proxy classes now implement INotifyPropertyChanging and INotifyPropertyChanged
  • Generate early bound classes using CrmSvcUtil. See here.
  • New Plugin Wizard for creating Plugins and Workflows. See here.
  • Bulk Link Items to CRM. See here.
  • Improved Plugin and Workflow Templates. See here.
  • Transfer links between different CRM organizations. See here.
  • Easily transfer plugin configurations between organizations and save to version control. See here.
  • Improved CRM Linq query provider. See here.
  • Ability to specify all report properties when creating/modifying a report. See here.
  • Publish the currently open document - A right-click menu in code window for JavaScript, TypeScript and Html for publishing the file to CRM. This allows you to setup a keyboard shortcut for publishing. For more information see the documentation here.
  • Ability to link a file without first linking the project.
  • Ability to create plugin configurations without first registering them. This allows you to setup all your plugin configuration and then register everything at once.
  • Ability to download the 'DLL' of any plugin registered in the database.
  • Ability to see what other steps are registered for the same entity and message. This allows you to determine the order that plugins are executed in the pipeline very easily.
  • Proxy classes now implement INotifyPropertyChanging and INotifyPropertyChanged interfaces

Breaking Changes

  • CRM Solution Manager now requires .Net Framework 4.6
  • Since the Proxy Classes now derive from the 'Entity' class instead of instantiating a backing field for the entity, if you are converting an 'Entity' to a proxy class, you are essentially creating a copy of the record. Any changes to the proxy class do not get persisted to the original entity record and vice versa. This comes into play if you are manipulating the 'Target' of a plugin. You can no longer create a 'Proxy' class of the 'Target' just for manipulation of the underlying record. All changes will need to be done to the 'Target' entity itself.
  • New file extensions and formats used for the configuration files. Previously the extensions .crmsm, .crmsmu, and .crmmeta were used. They have been replaced with .xrm, .xrmsuo, and .xrmcache. The file contents are now saved in json instead of Xml. You shouldn’t encounter any issues unless you were creating/modifying these files outside of the GUI interface. Due to the new files and formats, an upgrade process will occur to the files. Both sets of files will exist at the end of the process but only the new formats will be used moving forward. If you have users on older versions they can continue to use the older version and files but they will not stay in sync with the updated version of the files. See the documentation for more details.
  • Ability to debug web resources has been removed. Since this functionality only worked with CRM 2011 RU12 or less, it was decided to drop support of this feature.
  • Auto-backup feature has been removed. Most developers use a source control system similar to TFS and so it was decided to drop support of this feature.
  • Visual Studio 2010 is no longer supported.

CRM Solution Manager


3.4.2 October 26, 2015

Bug Fixes

  • Fixed issue with constructor in Proxy Classes.
  • Improved performance of loading the plugin registration window.
  • Many other minor bug fixes.

3.4.1 May 5, 2015

Bug Fixes

  • Fixed issue with generating Proxy Classes.
  • Improved performance of the loading of the entity metadata on the 'Add Items to Project' dialog.

3.4.0 May 1, 2015

New

  • Added support for Visual Studio 2015
  • Added the ability to specify the ILMerge output name.
  • Added the ability to override the ILMerge target .Net Framework version.
  • Added the ability to provide a Home Realm URL if necessary.

Bug Fixes

  • Fixed errors related to using ILMerge.
  • Fixed issues with the 'Edit Plugins and Steps' window not showing properly.
  • Fixed an error that would show if you were not using TFS as your source control system.
  • Plugin projects for CRM 2015 now target the .Net Framework version 4.5.2

3.3.0 March 16, 2015

New

  • CRM 2015 officially supported.
  • Enhanced JavaScript intellisense for OptionSets. Ie, Xrm.Page.getAttribute("OptionSetName").getValue() == [Intellisense here for all possible values]
  • Added the ability to create proxy classes for 'Intersect' entities.
  • Added the ability to specify the ILMerge output directory.
  • Added the ability to specify whether or not you wanted ILMerge to generate a pdb file.
  • Before writing file contents to disk, a rudimentary check is performed to see if the existing contents are the same. If so, then the contents are not written to disk thus preventing TFS from checking out the file.
  • Added CRM 2013 and CRM 2015 specific JavaScript methods to Xrm.js and Xrm.d.ts intellisense files.
  • Updated the Xrm.d.ts templates to use the TypeScript definition files found on GitHub here.

Bug Fixes

  • Fixed an issue where you could not specify only a backslash '\' as the file path for web resources to be downloaded to.
  • Fixed proxy class issue where some N:N relationship names were generated incorrectly when 'Custom Labels' were used.
  • Fixed and issue where an error would appear upon loading a solution: "Please update the 'GetJavascriptType' function to include the new AttributeMetadata type: AttributeMetadata"

Breaking Changes

  • CRM Solution Manager now requires .Net Framework 4.5.2 - This is to provide official support for CRM 2015 which uses the .Net Framework 4.5.2.

3.2.0 February 9, 2015

New

  • VB.Net proxy classes now contain all the enhancements that were introduced in version 3 for C# classes.

Bug Fixes

  • Fixed an issue where in certain instances Visual Studio was crashing upon loading CRM Solution Manager.
  • Fixed an issue where 'BaseProxyClass' was not generating properly.

Breaking Changes

  • Proxy methods for retrieving 1:N related entities now use the name of the attribute on the related entity instead of just a number. Ie, "GetAccounts_Owner" instead of "GetAccounts1". This helps reduce confusion between methods and is also less likely to change the meaning of the method by adding another relationship to the entity.

3.1.1 January 30, 2015

Bug Fixes

  • Fixed issue when no source control software is installed.
  • Fixed issue with enum property name generation.
  • Fixed issue with being able to paste into the 'New Web Resource' window.

3.1.0 January 21, 2015

New

JavaScript / TypeScript
  • TypeScript files are now supported. The JavaScript output is what gets published to CRM.
  • Intellisense files can be generated for TypeScript similar to the JavaScript intellisense that is already available. See here.
  • Intellisense for Xrm.Page.getAttribute("XXX").setValue() for Optionset attributes. The list of possible values appear and then the intellisense enters the integer value upon selecting a value. See here.
  • Added the 'Save' method options to the intellisense prompt. See here.
Proxy Classes
  • Proxy classes are now full fledged objects in CRM Solution Manager and are linked to CRM. This allows you to right click on a proxy class and refresh from CRM with the click of a single button. You generate Proxy classes in the same way that you download web resources or other files in CRM Solution Manager. See here.
  • Proxy classes can automatically update when the metadata changes and is refreshed in CRM Solution Manager. See item 2 here.
  • Proxy classes can enforce length, min, max on text and number attributes. See here.
  • Proxy classes can auto truncate text that is longer than is allowed for a string attribute. See here.
  • Proxy class names can now be based on a specified pattern. See item 7 here.
  • Proxy classes now return records as Proxy classes without the need for casting, ie GetLeads() now returns List<Lead> instead of List<Entity>. This only applies to proxy types that have already been generated or are selected for generation at the same time.
  • Optionset properties now have a method allowing you to easily get the text of the current value. See here.
Misc
  • When updates are made to a security role using the Security Role Modification tool the modified roles are now added to the currently selected solution as a solution component.
  • You can now specify 'Privileges' on the SubArea of a sitemap.
  • New "Download All Linked Items from CRM" button at both the solution and project level.
  • New "Update All Items" and "Update and Publish All Items" at the project level. This was only available at the solution level previously. See here.
  • Ability to auto publish a webresource or report when the item is saved in Visual Studio. See item 3 here.
  • New "Refresh Metadata" and "Clear Cache and Refresh Metadata" buttons at the solution level. See here.

Breaking Changes

  • JavaScript intellisense is now split into 2 separate files. Xrm.js contains the entity agnostic code and the "Entity Form.js" contains the form specific intellisense data. Both files must be referenced on the JavaScript file in order for the intellisense to work properly. This is the same for TypeScript.
  • OptionSetAttributes for Proxy Classes now have the following naming convention when using the 'Display Name' for generation: 'DisplayName_OptionSetValue' instead of 'DisplayNameOptionSetValue'
  • Enum types in Proxy Classes are now nullable.

2.4.5 January 22, 2015

Bug Fixes

2.4.4 January 1, 2015

Bug Fixes

2.4.0 August 22, 2014

New

Bug Fixes

2.3.4 April 1, 2014

Bug Fixes

2.3.3 March 14, 2014

Bug Fixes

2.3.2 March 13, 2014

Breaking Changes

New

Bug Fixes

2.2.1 November 20, 2013

2.2.0 November 15, 2013

2.1.0 November 11, 2013

2.0.3 November 08, 2013

2.0.2 November 07, 2013

2.0.1 November 06, 2013

1.0 May 01, 2012


CRM Sitemap Editor


2.2.1 November 20, 2013

2.2.0 November 15, 2013

1.0 May 01, 2012