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

时间:2018-05-04 10:47:06

标签: dynamics-crm microsoft-dynamics dynamics-crm-online

目的:添加具有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中不起作用

1 个答案:

答案 0 :(得分:0)

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

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