1

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

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

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

4

2 回答 2

4

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

将解决方案打包为托管解决方案时,会将 SiteMap XML 与原始 SiteMap XML 以及对 SiteMap 进行的任何其他自定义进行比较。只有差异包含在托管解决方案中。这些差异包括已更改、移动、添加或删除的项目...。稍后,如果卸载托管解决方案,将引用随托管解决方案导入的 SiteMap XML 以删除随该托管解决方案引入的更改。然后计算一个新的活动站点地图。

例如,仅包含添加组的解决方案的自定义 .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属性指示系统在删除托管解决方案时从完整的自定义文件中删除 XML 片段。简而言之,它应该按照您希望的方式运行...

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

这对您不起作用似乎表明您系统的customization.xml 已以某种方式损坏。我建议导出站点地图,删除对错误元素的任何引用,然后重新导入。

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

于 2013-08-25T17:23:42.110 回答
2

您是否尝试过来自更糟糕的 Tanguy 的 XrmToolbox 的糟糕的 SiteMap 编辑器?

在这里能找到它: //xrmtoolbox.codeplex.com/

这是重置它的方法 这就是你要做的

于 2013-08-27T06:49:28.437 回答