0

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

但是,我遇到的问题是,卸载插件时,站点地图自定义项不会被删除。附加组仍然是sidenav区域的一部分,但现在它会导致站点地图错误,因为它使用的必要Web资源不存在(它们在插件卸载过程中被删除)。

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

+0

我可能是错的,但我认为你必须更正站点地图,然后重新导入。否则,无论您是否卸载不受管理的解决方案,旧的站点地图都会保留。如果您确实希望该站点地图能够与卸载一起使用,您可能可以使用托管解决方案。 –

回答

3

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

当作为管理的溶液被包装时,网站地图XML比较 到原始站点地图XML并向 网站地图进行的任何其他定制。托管解决方案中只包含差异。 这些差异包括已更改,移动,添加或已删除的项目....稍后,如果托管解决方案已卸载,则使用托管解决方案导入的 SiteMap XML将被引用为 ,以删除随此引入的更改管理 解决方案。然后计算一个新的活动SiteMap。

例如,含有仅仅是添加组将包含类似于此XML的溶液的customization.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。总之,它应该行为方式,你想要它...

当然,上述只适用于托管解决方案。

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

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

相关问题