Rather than storing the ZIP solution in source control, some project teams choose to store the source code of each individual component instead, for example by using the SolutionPackager tool. This allow team members to easily track changes to components at check-in, or to understand how a component was changed over time.
One type of component that may be stored in source control in this way is the RibbonDiff XML for entities. The process of modifying and deploying RibbonDiff is pretty cumbersome though. Natively it involves exporting a solution, modifying the XML and reimporting the solution. The popular Ribbon Workbench automates this process and provides a great UI for editing the XML, but it is rather slow for making small changes – and it also does not help in storing the source code for the RibbonDiff.
CRMQuickDeploy 2.6 adds a feature that allows you to quickly deploy RibbonDiff XML from Visual Studio to CRM for an entity.
Download it now!
You can download the latest version of CRMQuickDeploy from the Visual Studio Gallery.
Accessing the command
This command is accessible by right-clicking on the code editor of the RibbonDiff.xml file, or by the Alt+Q, F shortcut key.
Note that this is the same command for deploying web resource. The command determines the current file in the code editor to be a RibbonDiff if its file name is RibbonDiff.xml, and if it is not located under the WebResources folder of the project.
Therefore, to use this command for RibbonDiff deployment, ensure that:
- The file is named RibbonDiff.xml
- The file is not located under the WebResources folder of the project, or one of its sub-folders
- The file is contained in an immediate folder with the name of the target entity (see below)
Specifying target entity for RibbonDiff
The RibbonDiff schema does not contain information about the target entity. The command therefore uses the name of the immediate parent folder of the RibbonDiff file to determine the target entity. If the target entity is new_staff for example, place the RibbonDiff file for this entity directly under a folder named new_staff.