无需更改功能区即可导入解决方案

时间:2018-08-31 07:19:16

标签: dynamics-crm dynamics-365 dynamics-crm-365 crm-ribbon-workbench

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

是否有解决方案中不包括色带更改的方法?

3 个答案:

答案 0 :(得分:1)

不幸的是,实体元数据定义的Ribbondiff xml尚未成为可以作为解决方案一部分进行细分的子组件。

换句话说,没有粒度可以仅使用环境之间的解决方案来跳过功能区更改。功能区始终存在。

一种解决方法是打开CRM功能区工作台,从org B复制xml作为备份。将实体解决方案从组织A移到组织B后,将备份xml粘贴到组织B中以恢复/发布。

答案 1 :(得分:1)

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

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

您可以通过将应用功能区添加到解决方案来编辑​​全局功能区: Application Ribbons

然后您将在<RibbonDiffXml>中找到全局customizations.xml(位于文件的最后)。您可以在此处使用{!EntityLogicalName}占位符添加所需的XML。最后,您可以使用DisplayRule来确保只有您的特定实体具有显示的功能区按钮:

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

答案 2 :(得分:0)

使用 SolutionPackager.exe 可以排除功能区。

  1. 从 Dynamics 365 导出解决方案
  2. 使用 SolutionPackager.exe 提取
  3. 在提取的文件中,从实体文件夹中删除 RibbonDiff.xml 文件
  4. 编辑 Entity.xml 并删除 <RibbonDiffXml />
  5. 使用 SolutionPackager.exe 打包解决方案

注意:每次导出时都需要这样做