Ribbon Compare — User Guide
Overview
Ribbon Compare compares ribbon and command bar customizations between two Dataverse environments, presenting differences in syntax-highlighted XML so you can pinpoint exactly what changed.
Prerequisites
- Two active connections to Dataverse environments
- Read access to ribbon definitions in both environments (
prvReadRibbonMetadataor equivalent)
Getting Started
- Select Ribbon Compare from the sidebar
- Select Source and Target environments
Workflow
1. Choose What to Compare
Select from two ribbon scopes:
| Scope | Description |
|---|---|
| Entity ribbon | Ribbons for a specific entity (form toolbar, view toolbar, subgrid toolbar) |
| Application ribbon | Global ribbons that apply across the application |
For entity ribbons, use the entity picker to choose the table.
2. Load Ribbons
Click Load to retrieve the ribbon XML from both environments.
The plugin calls the RetrieveEntityRibbon or RetrieveApplicationRibbon endpoint and returns the full customized ribbon XML.
3. Review the Diff
Results are shown side-by-side (or in unified diff view):
| View | Description |
|---|---|
| Side-by-side | Source XML on the left, target XML on the right |
| Unified diff | Combined view with added lines in green and removed lines in red |
Syntax highlighting makes it easy to spot <CommandDefinition>, <RuleDefinition>, and <DisplayRule> changes.
4. Search and Filter
- Use the search bar to jump to a specific command ID, label, or XML attribute
- The search highlights matching text across both panels simultaneously
5. Export Differences
Click Export to save:
- Source XML — The raw ribbon XML from the source environment
- Target XML — The raw ribbon XML from the target environment
- Diff report — A summary of differences in CSV format
Understanding Ribbon XML
Common elements you will encounter in the diff:
| Element | Description |
|---|---|
<CommandDefinition> |
A button or menu command and its actions |
<DisplayRule> |
Controls when a button is visible |
<EnableRule> |
Controls when a button is enabled |
<Button> |
The rendered button element with label and icon |
<Group> |
A group of buttons in the ribbon |
Tips
| Tip | Detail |
|---|---|
| Compare before publishing | Run after importing a solution to confirm ribbon changes applied as expected |
| Entity vs application | Check both entity and application ribbons — some buttons are defined globally |
| Search for command IDs | Paste a specific command ID into the search box to jump straight to the relevant section |
| Large XML is normal | Ribbon XML can be several thousand lines — use search rather than scrolling |
Troubleshooting
| Problem | Resolution |
|---|---|
| "No customizations" on one side | The environment may have only default (uncustomized) ribbons — this is expected for a clean install |
| XML load fails | Your account may lack access to ribbon metadata endpoints — contact the environment admin |
| Diff shows thousands of whitespace differences | Enable "Ignore whitespace" in the diff options |