如何为托管解决方案添加自定义站点地图区域/组/子区域?

Nil*_*rma 7 microsoft-dynamics dynamics-crm dynamics-crm-online

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

我理解Dynamics中的合并是如何工作的,这对我来说不是问题

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>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用它时,我在SiteMap中看不到任何条目.

我找到了一个直接解决我的问题的帖子.它要求在SubArea/Group元素中使用solutionaction属性,这样可以让CRM在托管解决方案的安装和卸载过程中合并站点地图.

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

我认为这是一个相对受欢迎的场景.

PS:

我在Dynamics365(v8.2)上,所以我不能破解后面的代码,也不喜欢它.

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

Ala*_*itz 1

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

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