XrmToolkit
8.3.1 Aug 10, 2024
New
- Added support for the bulk message plugins, ie: CreateMultiple and UpdateMultiple. See here.
- Updated the logic so that PCF projects are only built once while publishing.
- Plugin packages now get added to the active solution when published.
Bug Fixes
- Fixed an issue that wasn't allowing a plugin package to be linked to an existing project.
- Fixed an issue when trying to create a custom API and the active solution does not exist.
- Fixed an issue when trying to re-register a plugin step from a plugin package and the plugin type ID changes.
8.2.2 May 15, 2024
New
- Updated logic to automatically add the 'GeneratePackageOnBuild' project property for plugin packages instead of throwing an error.
- Added default 'Version' and 'FileVersion' properties for plugin packages that auto increment the versions based on the date.
- Updated the logic on a 'Build and Publish' for plugin packages to automatically perform a 'clean' since you cannot update the package version (per the documentation) and the local package file will not be updated unless a 'clean' is performed.
Bug Fixes
- Fixed an issue that was causing the plugin project properties to change even if the 'Merge Type' was not NuGet.
8.2.1 May 6, 2024
New
- Added logic to ensure that a project is setup correctly when using the 'Dependent Assemblies' feature.
- Linq query provider: Added the ability to stream results in batches using the 'BatchResults' extension method. This helps when processing large result sets.
- Linq query provider: Added the 'WithPageSize' extension method allowing the ability to specify the page size to use when retrieving large datasets.
- Linq query provider: Added support for using 'FormattedValues' in the result selector.
Bug Fixes
- Fixed an issue where the PCF manifest order of elements would change, thus affecting which column the control was bound to.
- Fixed an issue with the PCF manifest editor trying to load an image for the control.
- Fixed an issue with proxy class generation that would occur right after linking a project to D365.
- Fixed an issue with carriage returns in the description text of optionsets when generating proxy classes.
- Fixed an issue when trying to generate a proxy class for a custom action.
- Fixed an issue when trying to register a customApi and an error was thrown: 'customapi' entity doesn't contain attribute with Name = 'workflowsdkstepenabled' and NameMapping = 'Logical'.
- Update NuGet packages to install with the correct 'PrivateAssets' setting.
- Fixed some issues when registering/unregistering custom api's.
- Fixed an issue where the 'Release' build of a PCF control was not actually building in 'production' mode.
- Fixed an issue where XrmToolkit was not recognizing a valid license due to case sensitivity with the username on a computer.
8.2.0 Jan 21, 2024
New
- Initial support for Arm64 (Beta)
- Automatically add the necessary elements to the project file to support Dependent Assemblies
- Added the ability to change the Gulp timeout in the Global Settings UI.
- Added the ability to renew a license registration from the 'About' form.
Bug Fixes
- Fixed an issue with invalid message names being created during the proxy generation.
- Fixed an issue with the Gulp service crashing Visual Studio.
8.1.0 Sept 6, 2023
New
-
Added the ability to turn off the use of existing proxy names when regenerating proxies.
You can selectively determine which object types will use existing names and which will use the proxy naming method and overwrite any of the current names.
-
Added the SdkMessageConfigs and SdkMessageFilterConfigs to the PluginAssemblyConfig data.
- You can now compare CustomAPI config data to what is deployed in D365.
- Added support for registering/modifying webhooks and service endpoints along with their accompanying steps in the plugin registration tool.
- Updated the CLI to allow registering a license without supplying a username and password.
Bug Fixes
- Fixed an issue where an error was thrown due connecting to a D365 version that does not support CustomAPI's.
- Fixed an issue where the current organization version would be lost when switching branches causing an 'Object Reference Not Set to an Instance of an Object' error.
- A plugin assembly project is no longer requred to be signed if deploying as a NuGet package.
- Fixed an issue when using the CrmSvcUtil proxy generation method that would remove valid enums and properties from the CrmContext when regenerating them or when adding a new proxy class to the project.
- Fixed an issue when trying to deploy a new plugin assembly that uses the 'NuGet' merge type and the project has never been built.
- Fixed an issue when trying to download report files (.rdl) from D365 and adding them to the project.
- Fixes an issue with the 'Copy links from another Organization' process.
- Fixed an issue where publishing all customizations would timeout.
8.0.2 Jan 28, 2023
Please see the "What's New in V8" document here.
7.3.5 July 30, 2022
New
- Improved menu text for some dynamically generated menu items.
- Added the 'Form Type' to the display of the forms when selecting TypeScript intellisense files to generate.
- Make the 'Execute' method of the PluginBase class virtual to allow inheritors to override it.
- Allowed the Reports project build to fail and still be able to publish as report.
- Ignore serializing/deserializing the OrganizationVersion from the xrm2 file.
Bug Fixes
- Fixed an issue where attempting to auto-install ILMerge was throwing an error.
- Fixed an issue where you would be logged out and prompted to log back into and organization after changes to the .xrm2 file.
- Fixed some issues with naming conflicts when using the CrmSvcUtil method of generation.
- Fixed an issue with the 'openQuickCreate' Javascript method signature.
- Fixed an issue where ILMerge was not found as a package if it was installed with a LowerCase for the name.
- Fixed an issue that was causing an error to appear in the logs, even though it was not a critical error.
7.3.4 April 20, 2022
Bug Fixes
- Fixed the crash error: The type initializer for 'DevExpress.Xpf.Utils.Themes.WindowTracker' threw an exception. ---> System.InvalidCastException: Unable to cast object of type 'DevExpress.Xpf.Core.StirlitzHashTable' to type 'System.Collections.Generic.Dictionary`2[System.Int32,MS.Internal.Automation.EventMap+EventInfo]'
7.3.3 April 8, 2022
New
- Added the ability to specify the 'Prompt to login' when using the 'OAuth/MFA' authentication type.
Bug Fixes
- Fixed an issue in the MonoHelper where it would throw an error if v6.x had not been previously installed.
- Fixed an issue where enum proxy classes were being generated multiple times during a single operation.
- Fixed an issue where an error would be thrown if no 'Current Solution' was set and you tried to add a new webresource.
- Fixed an issue where the filtering attributes were not displaying correctly.
- Fixed an error while generating proxy classes for custom actions when the parameter type was a 'BusinessEntityCollection'.
7.3.2 February 4, 2022
New
- Updated some methods and properties in the 'BaseProxyClass' to be 'Protected' so that inheritors could access them.
- Updated some items in the Xrm.d.ts that were not typed correctly.
- Added back in the overloaded methods for 'Relate' and 'UnRelate' entities to retain backwards compatibility with proxy classes that have not been generated yet with v7.
- Created a new NuGet package: XrmToolkit.Linq.Core which utilizes the updated CRM SDK's which are compatible with .Net Core and .Net 5+.
Bug Fixes
- Fixed an issue where the 'async' JavaScript keyword was not being handled properly by the prettify logic.
- Fixed an issue causing Visual Studio to crash if it could not checkout the .xrm2 file in order to update it.
- Fixed an issue where TypeScript intellisense was missing controls from the header and footer of the form.
- Fixed an issue where changes to global optionsets were not being detected and so proxy enum classes were not able to be regenerated properly.
- Fixed an issue where the CLI was unable to publish a project that used ILMerge.
- Fixed an issue where the 'Name' property of a FileAttributeMetadata attribute was being duplicated during proxy generation.
- Fixed an issue preventing you from linking a project or solution in some instances.
7.3.1 November 16, 2021
New
- When editing the project properties of a Plugin assembly, the updates are pushed to Dynamics 365 only when properties have changed that affect the registration in Dynamics 365.
- Allow the ability by project to turn off the automatic deletion of links when the files do not exist on disk.
- The 'FileSystemWatcher' is turned off during build operations which provides greater performance and stability to Visual Studio.
- Update the CRM SDK references to the latest (9.0.2.42).
Bug Fixes
- Fixed an issue where multi-select optionset columns were not available in the list of filtering columns when registering a plugin step or image.
- Fixed an issue where the relative path was being calculated incorrectly when setting the output file name of a web resource.
- Fixed an issue where updates to plugin assemblies would fail for certain organizations.
- Fixed an issue where you could not connect to a new organization in the CRM17 region.
7.3.0 October 25, 2021
New
- Added new overloaded methods to the 'IProxyNamingService that allows the ability to specify a custom proxy base class for your proxy files.
- Updated the BasePluginTemplate to make some properties 'virtual'.
- Content from Dynamics is no longer automatically prettified when comparing to local file.
- If an item has a Gulp task specified, XrmToolkit will now execute this before doing a 'Compart to Local'.
- Added a new option to the Global Settings to allow turning off the prompt to remove links when a project is removed/unloaded from the solution.
- Typescript intellisense: WebApi.retrieveMultipleRecords now returns a 'RetrieveMultipleResponse' type.
- TypeScript intellisense: now generates the empty 'getControl' method which returns an array of all controls.
- Typescript intellisense: Added 'Xrm.App' to the TypeScript intellisense so that you are no longer required to declare this in your TypeScript files.
- Typescript intellisense: Added the 'formContext.ui.headerSection' and 'formContext.ui.footerSection' to TypeScript intellisense.
- Typescript intellisense: Added the 'getContentType' and 'setContentType' methods to the 'tab' control.
- Updated the 'SetPropertyValue' in the proxy base class to be virtual to allow custom base classes to inherit from and override that method.
- Only the last 3 versions of cached plugin assemblies are preserved on disk. Frees up disk space.
Bug Fixes
- Fixed an issue where the namespace would be deleted when only trying to regenerate the 'BaseProxyClass' file.
- Fixed an issue in the BaseProxyClass that would cause a runtime exception to be thrown when specifying a 'TopCount' as part of your 'RetrieveProxies' query.
- Fixed an issue where generated items (proxy classes, message names, table names, etc) would not generate with a default namespace when the namespace had been removed from the existing file.
- Fixed an issue where shared project files would show in the linked project when using the 'Link items' project or solution menu.
- Fixed an issue where the 'Gulp' process was not using the correct input file.
- Fixed an issue where the MSBuild targets were not logging information.
- Fixed an issue where the BeforePublishAssembly and AfterPublishAssembly MSBuild targets were not being called.
- Fixed an 'Object reference not set to an instance of an object' when generating a TypeScript intellisense file.
- Fixed an issue where line breaks in attribute descriptions would cause compile errors after generating a proxy class.
- Fixed an issue when copying links from another organzation.
- Fixed an ILMerge dialog issue.
- Fixed a 'NullReferenceException' error when trying to save the .xrm file in some instances.
7.2.2 August 18, 2021
New
- XrmToolkit CLI now included in the Visual Studio extension to allow custom naming service functionality without needing to download the CLI separately.
- Added Xml comments for public members of the proxy base class (C# only).
Bug Fixes
- Fix issues with windows where copying/pasting into a textbox copies text to the underlying open file instead of the textbox. All windows are now shown modally.
- Fixed an issue with trying to connect to a CRM 2013 on premise instance.
- Fixed an issue when a referenced file does not have a file extension.
- Fixed an issue when trying to generate a lot of proxy classes (~200+) that used either the CrmSvcUtil or custom naming service which threw an error due to the command line args going over the allowed limit.
- Fixed an issue where double quotes were not being handled correctly for labels for optionsets in proxy classes.
- Fixed an issue when trying to add items to a project from a CRM 2015 organization.
- Fixed an issue when an 'Active Solution' is not set for the organization.
- Fixed an issue where line breaks in comments or summaries was causing compile errors.
- Fixed an issue where proxy naming logic was not using existing enum names in some instances.
- Fixed an 'Object reference not set to an instance of an object' when trying to register a plugin step.
- Fixed an issue with an 'ObjectDisposedException' being thrown while trying to connect to your organization.
- Fixed an issue when using the CrmSvcUtil method that was having an issue with organization URL's that included the service endpoint.
7.2.1 July 2, 2021
Bug Fixes
- Fixed regression introduced that prevented completing the 'New Solution' wizard.
7.2.0 June 30, 2021
New
- Added logic to remove duplicate CrmFile entries in the .xrm2 file upon loading of the file.
- Added the ability to specify a connection timeout in the global settings for connections with Dynamics365.
- Improved the connection error message when the error is due to the WS-Trust authentication protocol being deprecated for an organization.
- Updated Microsoft.CrmSdk.* packages to the latest.
- Improved handling and reloading of the .xrm2 file when it is modified outside of Visual Studio or when the source control branch is changed.
Bug Fixes
- Fixed an issue where the progress bar would not display when automatically publishing an item when the item is saved.
- Fixed an issue where certain file types were not automatically publishing when the item was saved.
- Restored the ability to publish a plugin project using the XrmToolkit CLI.
- Fixed an issue where entity metadata was duplicated in some dropdowns/windows.
- Fixed an issue where creating a new plugin project would error out if you tried to generate the proxy classes using the CrmSvcUtil method.
- Fixed an issue where custom proxy settings would not be used/saved when using the 'Create new plugin/workflow' menu.
- Fixed issues with previous proxy generation not being taken into account when generating new proxy classes during the 'New Plugin/Workflow' process.
- Fixed an issue where bitmap errors were causing XrmToolkit not to load properly.
- Fixed an error that was being thrown while trying to call the 'AddPluginAssemblyToCRM_BeforeQueryStatus' method.
- Fixed an issue with the .xrm2 file not loading when the solution contained a 'Setup' project.
- Fixed an issue where the 'SetState' and 'SetStateAsync' methods were not being generated when using the 'XrmToolkit' generation method.
- Fixed an issue where a '/' was being added to the suggested name of a web resource when it was not necessary.
- Fixed an issue where the XrmToolkit CLI expected path was incorrect.
7.1.5 June 14, 2021
New
- The 'Link Items from Solution/Project' is now able to recognize 'OptionSetEnums', 'PluginBaseClass', 'TableNames', and 'MessageNames' classes.
- 'Link Items from Solution/Project' window now shows files that it recognizes but was not able to find a match for.
- Added the ability to View/Save logs when a connection error occurs.
- Added the ability to view Gulp errors/issues when viewing a linked item properties.
- Added the ability to change the logging level in the global settings to allow capturing verbose level logging.
- Updated to the latest CRM SDK packages.
Bug Fixes
- If an error occurs during the assembly key generation, the error is logged instead of thrown which prevented the project create process from completing successfully.
- Fixed an issue where Gulp tasks were not showing if the Gulp NPM package was installed at the solution level instead of the project level.
- Fixed issues when trying to find a match for an existing item when the output extension is different than the file extension, ie TypeScript, LESS, SASS etc.
- Fixed an issue where the 'Create License Activation Request' window would not show when license activation failed over the internet.
- Fixed an issue where the D365 menu would not show for a valid item if the project was not yet linked.
- Fixed an issue where NuGet packages for a project were not displaying in the 'ILMerge' window.
- Fixed an issue where WebHooks and their corresponding steps were not displaying in the 'Plugin Registration' window.
- Fixed an issue where duplicate table names were being generated in the 'TableNames' class.
- Added appropriate 'using' statements to proxy classes that were causing compilation errors when they were missing.
7.1.4 May 27, 2021
New
- Proxy naming now takes into consideration whether language keywords are case sensitive and handles any conflicts accordingly.
- Removed unnecessary 'using' statements from proxy templates.
- If NodeJs is not installed globally, then XrmToolkit defaults to the version installed with Visual Studio.
- If no language is related to a portal asset then assets are grouped under an 'Unspecified Language' node and subsequently downloaded to an 'Unspecified Language' folder.
Bug Fixes
- Fixed an issue preventing the ability to publish a web form step.
- Fixed an issue that prevented being able to connect to an on-premise organization.
- Fixed an issue where duplicate enum definitions were being generated when a table used the same global optionset for multiple columns.
- Fixed an issue where custom actions were not being generated when using the CrmSvcUtil generation method.
7.1.3 May 24, 2021
New
- Content snippets are now grouped by their associated language in the download window.
- Web form steps are now grouped by their associated web form in the download window.
- Ability to save or view the log file when an error is shown.
- Web projects that are created by XrmToolkit now specify the output type of 'Library' by default.
Bug Fixes
- Fixed an issue when trying to create a new plugin or workflow and a 'System.InvalidCastException' is thrown.
- Fixed an issue where plugin type configs were not correctly determining if there were any differences between deployed configs and saved configs.
- Fixed an issue where you couldn't register a new plugin if the target .Net Framework version was higher than the recommended version.
- Fixed an 'Object reference not set to an instance of an object' error when generating proxy enums that contained 'null' option values.
7.1.2 May 20, 2021
Bug Fixes
- Fixed an issue where you were not able to register a plugin or workflow that existed in the published assembly.
- Fixed an issue where an image and/or secure config were not registered when the options were specified in the 'Register Step' window.
- Fixed an issue when creating a new web resource and the publisher prefix was not prepended to the suggested name with an underscore (_) in the window.
- Fixed namespace issues when generating Visual Basic proxy classes.
- Fixed an issue where the 'Build and Publish' was failing due to an 'Object reference not set to an instance of an object' error.
7.1.1 May 18, 2021
Bug Fixes
- Fixed an issue where you could no longer regenerate proxy enums that had been previously generated using the CrmSvcUtil method and combined into a single file.
- Fixed proxy generation issue where proxy enums were generated in their own files regardless of the setting when using the XrmToolkit generation method.
- XrmToolkit now recognizes the preview versions of the Dataverse SDK packages and no longer tries to install the current SDK if the preview is already installed.
- Ability to link multiple files to the same Dynamics 365 asset has been restored.
- Fixed an issue when trying to downlaod a 'WebForms' asset from a portal website.
- Fix an issue where trying to type in the column filter loses focus and constantly overwrites the filter text.
- Log a warning about a possible issue when targeting a .Net Framework version in a plugin assembly instead of throwing an exception which would cause the publish to fail. See here about the recommended .Net Framework.
7.1.0 May 11, 2021
New
- Added the ability to download/import Portal assets to a Visual Studio project.
Bug Fixes
- Fixed an issue when generating proxy classes that used the 'CrmSvcUtil' method.
- Fixed an issue when generating proxy classes in a solution that contained a Solution Folder.
- Fixed an issue where the TypeScript intellisense files did not include the entity name as part of the file name causing collisions between different file names.
- Fixed an issue on the 'Download assets from D365' window where filtering items and then selecting the parent node still selected all children, not just the filtered children.
7.0.4 May 6, 2021
Bug Fixes
- Fix an issue while trying to register/edit a step that was 'Synchronous'.
- Fix issue with 'Compare to D365' not showing in menu.
7.0.3 April 23, 2021
Please see the "What's New in V7" document here.
6.4.10 March 25, 2021
Bug Fixes
- Fixed an issue where you couldn't select multiple entities in the 'Register Multiple Steps' window. All messages were filtered out in some instances.
- Fixed an 'Object reference not set to an instance of an object' error during proxy generation in certain circumstances.
6.4.9 January 28, 2021
Bug Fixes
- Fixed an issue where the 'Add Reports Project' menu was greyed out even though SSRS/BIDS was installed for VS2017 and VS2019.
- Fixed an 'Object reference not set to an instance of an object' error during 'Build and publish' execution in certain circumstances.
6.4.8 January 8, 2021
Bug Fixes
- Fixed an issue where there was a conflict between different versions of the CRM SDK.
- Fixed an issue when trying to link a Plugin assembly to CRM causing a "Mono.Cecil.ModuleDefinition" exception.
- Fixed an issue with the SS.Crm.Linq.dll causing a "Bad binary signature" exception.
6.4.7 December 8, 2020
Bug Fixes
- Fixed an issue where plugin configurations were not appearing in the 'Edit Plugins and Steps' dialog when using VS2015.
- Fixed an issue where the version was not showing in the 'Solutions' dropdown.
6.4.6 October 15, 2020
Bug Fixes
- Fixed an issue where new workflows created using the wizard were not being added to the Visual Studio project.
- Fixed an issue where N:1 relationships were not being generated when using the CrmSvcUtil generation method.
- Fixed an issue where 'ReadOnly' properties were not being generated when using the CrmSvcUtil generation method.
- Fixed an issue where relationships were not generating for proxy classes in some instances.
6.4.5 August 24, 2020
Bug Fixes
- Fixed regressions introduced in update 6.4.4 to naming of proxy classes/enums.
- Improved logic for displaying splash screen during operations.
- Fixed an issue causing VS to crash when switching source control branches.
6.4.4 May 22, 2020
Bug Fixes
- Various fixes around proxy class generation.
6.4.3 May 6, 2020
New
- Improved ProxyClass enum name generation for non-English languages.
Bug Fixes
- Fixed an issue with TypeScript intellisense generation.
6.4.2 Mar 11, 2020
Bug Fixes
- Fixed an issue with Proxy class generation.
6.4.1 Feb 22, 2020
New
- Added the ability to specify a connection string for connecting to CRM.
Bug Fixes
- Fixed an issue where 'System.Compiler' was not found.
- Fixed an issue with proxy class regeneration.
- Fixed an issue where the 'New Plugin Wizard' would error at completion.
6.3.0 Dec 1st, 2019
New
- Improved the "auto-format" of a JavaScript file upon download so that it understands ES6 concepts such as template literals and arrow functions.
- Added the "process.setStatus" method to the Xrm.d.ts file.
- Enhanced the proxy base class so that it better handles "null" values after being retrieved from CRM.
- ILMerge is no longer required to be downloaded as a separate file. It is included as part of XrmToolkit package.
Bug Fixes
- Fixed an issue where Visual Studio would hang after switching source control branches.
6.2.0 Sept 2nd, 2019
New
- Added the ability to generate proxy classes for entities that do not have a display name.
Bug Fixes
- Fixed an issue where not all SDK messages would load due to more than 5000 records.
- Fixed an issue where proxy classes were not being added to the project after generation.
- Fixed an issue where Visual Studio would hang after being prompted to reload the XrmToolkit configuration file.
- Fixed an issue where the .Net Framework version was not being set correctly for newly created projects.
6.1.0 May 20th, 2019
New
- Added the ability to force XrmToolkit to use the old proxy method of generation (Enums in the same file as the proxy class)
- Added the ability to use the default Windows credentials to login instead of requiring a username and password.
Bug Fixes
- Fixed various connection issues due to missing dlls.
- Fixed an issue where proxy class enums were being created in the directory 'ProxyClasses/Enums' regardless of the 'Proxy Classes Path' setting.
6.0.3 May 7th, 2019
Bug Fixes
- Fixed an error with Microsoft.VisualStudio.LanguageServices.dll
6.0.2 May 6th, 2019
Bug Fixes
- Fixed an issue with proxy class name and property name generation.
- Fixed an issue with proxy class file name being generated as ".cs"
6.0.1 April 29, 2019
New
- Support for Visual Studio 2019
- Improved Proxy Class Generation - Individual Enum files are now generated for each optionset and only a single file is generated for global optionsets.
- Improved TypeScript and JavaScript intellisense generation.
- Support for MFA
- Support for SVG files
- Support for Resx files
- Support for MFA when using the API
- Support for specifying the connection protocol (Tls 1.1 vs Tls 1.2 etc)
- Added the ability to specify the 'Use Strong Types for One-To-Many relationships' at the organization level.
- Support for relative directories when overriding references for the ILMerge process.
Breaking Changes
- Visual Studio 2013 is no longer supported.
5.1.9 April 26th, 2021
Bug Fixes
- Fixed an issue where not all of the Sdk Messages were being retrieved to be able to register steps against.
5.1.8 May 6th, 2019
Bug Fixes
- Fixed an issue with CrmSvcUtil proxy classes not generating with an "Object reference not set to an instance of an object" error.
5.1.7 April 23, 2019
Bug Fixes
- Fixed an issue with CrmSvcUtil proxy class generation.
5.1.6 April 20, 2019
Bug Fixes
- Fixed issue with license registration dialog not closing.
- Fixed issue with Enum property on a proxy class not being decorated with the 'AttributeLogicalName' attribute.
- Fixed an issue where only the top 5000 web resources would show in the 'Add Items to Project' dialog.
- Other misc bug fixes.
5.1.4 December 25, 2018
Bug Fixes
- Fixed issue with incorrect namespace being generated for proxy classes when being placed in the root folder of the project.
- Fixed issue where license registration wizard would not close upon completion.
- Fixed an issue with Microsoft.VisualStudio.LanguageServices.dll error upon startup.
- Fixed an issue with Microsoft.Xrm.Telemtry.dll error when loading plugins and steps for the solution.
- Fixed issue with TLS 1.2 protocol when connecting to D365 on-line.
- Fixed an issue where the 'AttributeLogicalNameAttribute' was not being applied to decimal properties related to 'money' properties when generating proxy classes.
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 login 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
- 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
- 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
- Fixed issue with enum property name generation.
- Fixed issue with being able to paste into the 'New Web Resource' window.
2.4.4 January 1, 2015
Bug Fixes
- Fixed issue with .Net Framework version 4.5.1 not being identified properly.
- Fixed issue with Sitemap editor where area titles would be lost after rearranging the sitemap.
- Fixed issue with plugin registration where all attributes were shown including remote attributes.
- Fixed issue with proxy class generation that was causing an error: "An item with the same key has already been added."
2.4.0 August 22, 2014
New
- Added support for Business Intelligence Development Studio for Visual Studio 2013 (download here)
- Added the ability to specify the 'AllowDup' switch for ILMerge.
- Added the ability to specify type names when using the 'AllowDup' switch for ILMerge.
- Added the ability to override the CRM reference directory when using ILMerge.
- Added the ability to specify other reference directories when using ILMerge.
- Added the ability to output the ILMerge log file.
- Added the ability to specify if duplicate resources are allowed when using ILMerge.
Bug Fixes
- Fixed issue with "/" character not being able to be used in new file name with non US keyboard layouts.
- Fixed issue with JavaScript intellisense not working if a project was not loaded in the solution.
- Fixed issue with JavaScript intellisense generation where quotes were in an option set value name.
- Fixed issue with deleting old references when not all projects loaded properly in the solution.
- Fixed Issue with editing a report file's CRM properties.
- Fixed issue with Proxy Class generation of EntityTypeName attributes.
- Fixed issue with registering or modifying images in the plugin registration tool.
- Fixed issue with modifying attributes that an 'Update' plugin step should filter on.
- Fixed issue with trying to add an invalid file type.
- Fixed issue where not all the attributes were showing in the plugin registration tool.
- Fixed issue where a 'Loading Resources' dialog would appear if you left the 'Plugin Registration' window open when closing Visual Studio.
- Fixed issue where some reports would download with their SQL Commands formatted incorrectly.
- Fixed issue when trying to select an existing entity to use as the debug entity for a web resource.
- Fixed issue with Sitemap where the 'Titles' would be removed if you reordered a group.
- Fixed issue where some VB proxy classes were generated with invalid code.
2.3.4 April 1, 2014
Bug Fixes
- Fixed issue with Java-script intellisense slowness.
- Fixed issue with Proxy Classes not creating memo attributes correctly.
2.3.3 March 14, 2014
Bug Fixes
- Fixed issue with connecting to CRM 2013.
- Fixed issue with metadata cache not updating attributes properly.
2.3.2 March 13, 2014
Breaking Changes
New
- Improved Proxy Class generation to include XML comments showing the logical names and max length or precision of properties.
- Improved Proxy Class generation to include XML comments showing the min and max values of integer, double, decimal, and money properties.
- Improved Proxy Class generation to include XML comments showing the display names and values of enums.
- Added new extension methods for easily adding changes to a Proxy class as part of an OrganizationRequestCollection used for an ExecuteMultiple request.
- Added support for F# assembly projects so that they can be used for plugins and custom workflows.
- Added local metadata cache. File is located in the same directory as the Visual Studio solution with an extension of ".crmmeta".
- Added the ability to change the theme of all the windows and dialogs in CRM Solution Manager.
Bug Fixes
- Fixed issue with JavaScript intellisense where the properties were not populating if a project in the solution was not loaded.
- Fixed plugin registration screen to show errors when un-registering items.
- Excel reports are now excluded from the list of reports available to download.
- Misc bug fixes
2.2.1 November 20, 2013
- Updated web resource dialog to have the following options when overwriting files 'Yes', 'No', 'Yes to All', 'No to All'.
- Fixed VSIX manifest issue for VS2010 where the VSIX would not install.
2.2.0 November 15, 2013
- Added support for CRM 2013
- Sitemap editor now includes 'Default Dashboard' property on Sub Areas for CRM 2013
2.1.0 November 11, 2013
-
Greatly enhanced JavaScript intellisense. Added intellisense for form specific attributes, controls and other methods that require string values.
See JavaScript Intellisense for more details and a video demonstrating the new capabilities.
2.0.3 November 08, 2013
- Fixed issue with Upgrade License not being recognized as a valid license.
- Fixed issue with JavaScript debug lookup window crashing
2.0.2 November 07, 2013
- Added verbiage to the upgrade screen regarding licensing.
2.0.1 November 06, 2013
-
CRM Solution Manager no longer requires a database. Configuration
data is now stored in an XML file at the solution level and can be stored in a source control system. See Working with Source Control and Teams.
- File paths used when downloading new items are now stored at the organization level. Defaults locations are suggested from the global options.
- Backup files are now saved to CRM instead of a local database.
- The ability to choose which type of files are backed up automatically when importing them into your solution.
- The ability to specify for each file whether it gets backed up when published to CRM.
- Ability to specify when a JavaScript or CSS file gets minified. See Web Resource Minification.
- Ability to set debug properties for each JavaScript or HTML file so that you debug them directly in Visual Studio with the click of a button.
- Ability to change which CRM Solution is the active solution, so that when you download or create new files they automatically get added to the solution.
- Ability to download resources from other solutions in CRM and automatically import them into the currently selected solution.
- Ability to 'Update All' (push) items in the current Visual Studio solution to CRM. See Updating All Items in a Solution.
- Ability to 'Update and Publish All' items in the current Visual Studio solution to CRM. See Updating and Publishing All Items in a Solution.
- Support for MSBuild through several custom targets. See Using MSBUILD with CRM Solution Manager.
- Added option that allows you to turn on/off automatic login prompt when opening a solution.
- Added ability to create a new IOrganizationService every time before you build and publish a plugin assembly.
- Misc bug fixes
1.0 May 01, 2012
2.2.1 November 20, 2013
- Fixed issue with sitemap not opening properly for non-English CRM organizations.
2.2.0 November 15, 2013
- Added support for CRM 2013
- Sitemap editor now includes 'Default Dashboard' property on Sub Areas for CRM 2013
- Login information is now remembered next time you open the application.
1.0 May 01, 2012