Dynamics crm 导入解决方案而不更改功能区

Dynamics crm 导入解决方案而不更改功能区,dynamics-crm,dynamics-365,dynamics-crm-365,crm-ribbon-workbench,Dynamics Crm,Dynamics 365,Dynamics Crm 365,Crm Ribbon Workbench,我们正在尝试将解决方案从组织a导入组织B,以便不导入在组织a中所做的功能区更改。在向组织a中的解决方案添加实体时,我们排除了元数据并添加了实体。从组织A导出此解决方案并将其导入组织B时,在组织A中的实体中所做的功能区更改将替换在组织B中对同一实体所做的所有功能区更改 有没有办法使功能区更改不包含在解决方案中?不幸的是,实体元数据定义的Ribbondiffxml还不是可以分割为解决方案一部分的子组件 换句话说,仅使用环境间的解决方案,没有跳过功能区更改的粒度。丝带总是走 一种解决方法是打开CRM

我们正在尝试将解决方案从组织a导入组织B,以便不导入在组织a中所做的功能区更改。在向组织a中的解决方案添加实体时,我们排除了元数据并添加了实体。从组织A导出此解决方案并将其导入组织B时,在组织A中的实体中所做的功能区更改将替换在组织B中对同一实体所做的所有功能区更改


有没有办法使功能区更改不包含在解决方案中?

不幸的是,实体元数据定义的
Ribbondiff
xml还不是可以分割为解决方案一部分的子组件

换句话说,仅使用环境间的解决方案,没有跳过功能区更改的粒度。丝带总是走


一种解决方法是打开CRM ribbon workbench,从Org B复制xml作为备份。将实体解决方案从组织A移动到组织B后,将备份xml粘贴到组织B以恢复/发布。

在解决方案中导出时,不能从实体中排除功能区。您可以做的是排除全局功能区定义(解决方案->客户端扩展->应用程序功能区)

我建议您删除对实体的本地功能区所做的更改,而只针对您感兴趣的实体进行全局功能区自定义。如果随后将应用程序功能区从解决方案中排除,则更改将保留在源环境中

可以通过向解决方案添加应用程序功能区来编辑全局功能区:

然后,您将在
customizations.xml
中找到全局
(位于文件的末尾)。在这里,您可以使用占位符添加所需的XML。最后,您可以使用DisplayRule确保只有特定实体显示功能区按钮:

<DisplayRule Id="My.DisplayRule">
    <EntityRule EntityName="myEntity" Context="Form" />
</DisplayRule>

使用可以排除功能区

  • 从Dynamics 365导出解决方案
  • 使用SolutionPackager.exe提取
  • 在提取的文件中,从实体文件夹中删除RibbonDiff.xml文件
  • 编辑Entity.xml并删除
  • 使用SolutionPackager.exe打包解决方案
  • 注意:每次导出时都需要执行此操作