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瀏覽器進行硬刷新。否則,很容易遇到類似於你描述的問題。

相關問題