目的:添加具有SubArea的组(打开WebResource),可以在托管解决方案中添加该组。安装前和卸载后的站点地图状态应相同。

I understand how merging in Dynamics works and that is not an issue for me

Customizations.xml内的通用站点地图如下所示

  <SiteMap>
    <SiteMap IntroducedVersion="7.0.0.0">
      <Area Id="MA" ResourceId="Area_Marketing"
            DescriptionResourceId="Marketing_Description"
            Icon="/_imgs/marketing_24x24.gif"
            ShowGroups="true" IntroducedVersion="7.0.0.0">
        <Group Id="Test Group" Title="Test Group" IsProfile="false">
          <SubArea Icon="$webresource:te_/assets/images/logo.png"
                   Id="te_survey"
                   Url="WebResources/te_/index.html"
                   Title="Test WebResource"
                   AvailableOffline="true"
                   PassParams="false"/>
        </Group>
      </Area>
    </SiteMap>
  </SiteMap>

但是,当我使用此选项时,我在SiteMap中看不到任何条目。

I found a post直接解决我的问题。它要求在SubArea/Group元素中使用solutionaction属性,该属性使CRM可以合并站点地图在安装和卸载时的托管解决方案。

遗憾的是,这在Dynamics365中不起作用。尝试使用它时,我丢失了整个站点地图。

我认为这是一个相对流行的方案。

PS:

我使用的是Dynamics365(v8.2),因此无法破解背后的代码,也不想使用它。

我尝试了How do I remove Dynamics CRM sitemap customizations?,但在Dynamics365中不起作用

最佳答案

通常在开发环境中通过内置的Sitemap Designer或通过诸如XrmToolBox SiteMap Editor插件之类的外部工具来修改站点地图。然后将它们导出为托管解决方案,其中仅包含站点地图的差异。以下是使用内置站点地图设计器执行您要进行的更改的步骤:

  • 在开发实例
  • 中创建一个新的解决方案
  • 将站点地图添加到解决方案
  • 单击组件>添加现有>站点地图
  • 单击站点地图,然后单击确定
  • 双击站点地图组件以在Sitemaps设计器中对其进行编辑
  • 将Area组件拖到退出菜单以创建一个新区域
  • 将“组”组件拖动到新添加的区域,以将组添加到区域
  • 将一个Subarea组件拖到新添加的组中,以创建用于启动Web资源
  • 的菜单项
  • 编辑子区域的属性以引用Web资源
  • 将“类型”设置为Web资源
  • 将URL设置为HTML Web资源
  • 保存并发布站点地图
  • 将解决方案导出为托管解决方案
  • 将托管解决方案导入目标实例以应用站点地图更改
  • 删除目标实例中的托管解决方案以卸载解决方案并还原站点地图更改
  • 关于dynamics-crm - 如何为托管解决方案添加自定义站点地图区域/组/子区域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50173128/

    10-10 23:34