如何为托管解决方案添加自定义站点地图 Area/Group/SubArea?

How to add a Custom Sitemap Area/Group/SubArea for a managed solution?

目的:添加一个带有 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) 上,所以我无法破解背后的代码,我也不喜欢它。

我试过了 如何删除 Dynamics CRM 站点地图自定义设置? ,但在 Dynamics365 中不起作用

站点地图通常在开发环境中通过内置的 Sitemap Designer or through external tools such as the XrmToolBox SiteMap Editor 插件进行修改。然后将它们导出为托管解决方案,其中仅包含与站点地图的差异。以下是使用内置站点地图设计器执行您想要进行的更改的步骤:

  1. 在开发实例中新建解决方案
  2. 将站点地图添加到解决方案
    • 单击组件 > 添加现有 > 站点地图
    • 点击站点地图,然后确定
  3. 双击站点地图组件以在站点地图设计器中对其进行编辑
  4. 将Area组件拖到退出菜单中创建一个新区域
  5. 拖拽一个Group组件到新添加的区域,将组添加到区域
  6. 拖拽一个Subarea组件到新添加的组中,创建启动web资源的菜单项
  7. 编辑子区域的属性以引用网络资源
    • 将类型设置为网络资源
    • 将 URL 设置为您的 HTML 网络资源
  8. 保存并发布站点地图
  9. 将解决方案导出为托管解决方案
  10. 将托管解决方案导入目标实例以应用站点地图更改
  11. 删除目标实例中的托管解决方案以卸载解决方案并还原站点地图更改