【问题标题】:Import solution without Ribbon changes无需更改功能区即可导入解决方案
【发布时间】:2018-08-31 07:19:15
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    不幸的是,实体元数据定义的Ribbondiffxml 还不是可以作为解决方案的一部分进行分段的子组件。

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-18
          • 2021-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多