我有一个托管插件,我可以从Microsoft Dynamics CRM安装/卸载 在插件的customizations.xml中,我已经包含了一小部分Sitemap自定义项,特别是另一个组并添加到sidenav区域。
然而,我遇到的问题是,在卸载插件时,不会删除站点地图自定义项。附加组仍然作为sidenav区域的一部分,但现在它导致站点地图错误,因为它使用的必要的webresources丢失(它们在插件卸载期间被删除)。
当我卸载插件时,有没有办法强制站点地图恢复为默认值,或者可能将自定义标记为特定于插件,以便在卸载时将其删除?
答案 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)