如何删除Dynamics CRM站点地图自定义?

时间:2013-08-23 16:24:48

标签: dynamics-crm dynamics-crm-2011 microsoft-dynamics crm-sitemap

我有一个托管插件,我可以从Microsoft Dynamics CRM安装/卸载 在插件的customizations.xml中,我已经包含了一小部分Sitemap自定义项,特别是另一个组并添加到sidenav区域。

然而,我遇到的问题是,在卸载插件时,不会删除站点地图自定义项。附加组仍然作为sidenav区域的一部分,但现在它导致站点地图错误,因为它使用的必要的webresources丢失(它们在插件卸载期间被删除)。

当我卸载插件时,有没有办法强制站点地图恢复为默认值,或者可能将自定义标记为特定于插件,以便在卸载时将其删除?

2 个答案:

答案 0 :(得分:4)

实际上,根据CRM 2011 SDK文档,当托管解决方案被删除时,站点地图修改属于托管解决方案的一部分应自动从系统中删除。引自SDK doc:

  

当解决方案打包为托管时,将比较SiteMap XML   到原始的SiteMap XML和任何其他自定义   网站地图。只有差异包含在托管解决方案中。   这些差异包括更改,移动,添加或更改的项目   删除....稍后,如果卸载托管解决方案,则   SiteMap随托管解决方案导入的XML将是   引用以删除随托管引入的更改   解。然后计算新的活动SiteMap。

例如,仅包含添加的Group的解决方案的customization.xml将包含与此类似的XML:

<Group Id="TestGroup" IsProfile="0" ordinalvalue="6" solutionaction="Added">
          <Titles>
            <Title Title="Examplegroup" LCID="1033" />
          </Titles>
          <SubArea Id="new_webresource" PassParams="1" Url="$webresource:new_webresource" ordinalvalue="0">
            <Titles>
              <Title LCID="1033" Title="Example" />
            </Titles>
          </SubArea>
        </Group>

solutionaction属性指示系统在删除托管解决方案时从完整customization.xml中删除XML片段。简而言之, 应该按照您希望的方式行事......

当然,以上内容仅适用于托管解决方案。

这对你不起作用似乎表明你的系统的customization.xml已经被破坏了。我建议导出站点地图,删除对错误元素的任何引用,然后重新导入。

还应注意,在发布站点地图的更新后,您通常需要对Web浏览器进行硬刷新,以便删除导航元素。否则,很容易遇到类似于你所描述的问题。

答案 1 :(得分:2)

您是否尝试过更棒的Tanguy XrmToolbox中的精彩SiteMap编辑器?

可在此处找到:http://xrmtoolbox.codeplex.com/

以下是重置方式 this is how you'd do it