分享方式:


解決方案元件相依性追蹤

 

發佈日期: 2016年11月

適用對象: Dynamics CRM 2015

解決方案是由解決方案元件所組成。 您在 Microsoft Dynamics 365 的 [解決方案] 區域中建立或新增解決方案元件。 使用 AddSolutionComponentRequest 訊息或建立或更新包括 SolutionUniqueName 參數的解決方案元件的任何訊息,您可以程式設計方式執行下列動作。

解決方案元件通常取決於其他解決方案元件。 有其他解決方案元件相依性的解決方案元件無法刪除。 例如,自訂功能區通常需要影像或指令碼 Web 資源,才能顯示圖示和使用指令碼執行動作。 只要自訂功能區在解決方案中,需要它使用的特定 Web 資源。 在刪除 Web 資源之前,您必須移除自訂功能區中它們的參照。 按一下 [顯示相依性],可在應用程式中檢視這些解決方案元件相依性。

本主題說明您在解決方案中包含的解決方案元件類型,以及它們彼此間互相依存。

本主題內容

所有解決方案元件

解決方案元件相依性

檢查解決方案元件相依性

一般解決方案元件

所有解決方案元件

可用的解決方案元件類型的完整清單位於系統 元件類型 (componenttype) 全域選項組。 將 SampleCode\CS\HelperCode\OptionSets.cs 或 SampleCode\VB\HelperCode\OptionSets.vb 檔案包括在專案中,就可以使用此屬性支援的範圍值。 不過,那裡列出的許多解決方案元件類型僅供內部使用,而清單中不提供解決方案元件之間的關聯資訊。

解決方案元件相依性

解決方案元件相依性可確保您有可靠的經驗來使用解決方案。 它們可防止您正常執行的動作不小心破壞解決方案中定義的自訂。 這些相依性可讓您藉由簡單匯入或刪除解決方案,來安裝及解除安裝受管理的解決方案。

解決方案架構自動追蹤解決方案元件相依性。 在解決方案元件的每個作業自動計算系統中其他元件的任何相依性。 相依性資訊用於維護系統的完整性和避免可能造成不一致狀態的作業。

基於相依性追蹤,下列行為會強制執行:

  • 如果在系統中其他元件依賴元件,無法刪除元件。

  • 在其他系統中匯入解決方案時,如果任何有遺失的元件可能會造成失敗,則匯入該解決方案時警告使用者。

    如果解決方案開發人員想要解決方案只安裝在相依元件預期存在的組織中,使用者可忽略在匯出時的警告。 例如,當您建立解決方案,其設計安裝在預先安裝的「基礎」解決方案上。

  • 如果所有必要元件未包括解決方案中也不存在目標系統,解決方案的匯入會失敗。

    • 此外,當匯入受管理的解決方案時,所有必要元件必須與解決方案的套件類型符合。 受管理的解決方案中的元件只可以依據其他受管理的元件。

解決方案元件相依性有三種類型:

  • 解決方案內部
    內部相依性由 Microsoft Dynamics 365 管理。 當特定解決方案元件無法在沒有另一個解決方案元件的情況下存在時,即存在內部相依性。

  • 已發行
    當兩個解決方案元件彼此關聯並發佈時,就會建立所發佈的相依性。 若要移除這種類型的相依性,必須移除關聯,然後再次發行實體。

  • 解除發行
    未發行的相依性適用於更新中、可發行的解決方案元件未發行版本。 在解決方案的元件發行之後,成為發行的相依性。

解決方案元件內部相依性表示解決方案元件的動作需要另一個解決方案元件的動作。 例如,當您刪除實體時,您預期會隨之刪除所有實體屬性。 也會刪除與其他實體的任何實體關聯。

然而,內部相依性可能會造成發行的相依性,而仍需手動介入。 例如,若您在實體表單上包含了查詢欄位,然後再刪除關聯中的主要實體,則必須先從相關實體表單中移除查詢欄位,然後發行該表單,才能完成刪除。

當您以程式設計方式執行解決方案的動作時,可以使用與 Dependency 實體關聯的訊息。 請參閱 相依性實體訊息和方法,取得可用以識別刪除元件或解除安裝解決方案之前可能已存在的相依性的訊息。

檢查解決方案元件相依性

當您編輯解決方案時您會發現無法刪除解決方案元件,因為它有其他解決方案元件的已發行相依性。 或是您無法解除安裝受管理的解決方案,因為受管理的解決方案中的其中一個元件用於其他未受管理的解決方案的自訂。

下表列出您可以用來擷取解決方案元件相依性相關資料的訊息。

訊息

描述

RetrieveDependentComponentsRequest

為直接依賴解決方案元件的解決方案元件,傳回相依性清單。

例如,當您對全域選項組解決方案元件使用此訊息時,則會傳回解決方案元件相依性記錄,表示參照全域選項組解決方案元件的所有選項組屬性。

當您為客戶實體時解決方案元件記錄使用此訊息,則會傳回所有解決方案元件的相依性記錄,代表該實體的屬性、檢視表與表單。

RetrieveRequiredComponentsRequest

為另一個解決方案元件直接依賴的解決方案元件,傳回相依性清單。 此訊息提供 RetrieveDependentComponentsRequest 訊息的相反訊息。

RetrieveDependenciesForDeleteRequest

為可能會防止解決方案元件刪除的解決方案元件,傳回所有相依性的清單。

RetrieveDependenciesForUninstallRequest

為可能會防止受管理的解決方案解除安裝的解決方案元件,傳回所有相依性的清單。

一般解決方案元件

這些是應用程式中顯示的解決方案元件,使用解決方案頁面新增或移除解決方案元件時直接使用這些元件。 解決方案元件的其他類型都需要一個或多個這類解決方案元件存在。

應用程式功能區 (RibbonCustomization)

實體 (Entity)

報表 (Report)

文章範本 (KBArticleTemplate)

欄位安全性設定檔 (FieldSecurityProfile)

SDK 訊息處理步驟 (SDKMessageProcessingStep)

關係角色 (ConnectionRole)

合併列印範本 (MailMergeTemplate)

資訊安全角色 (Role)

合約範本 (ContractTemplate)

選項組 (OptionSet)

服務端點 (ServiceEndpoint)

儀表板或實體表單 (SystemForm)

外掛程式組件 (PluginAssembly)

網站地圖 (SiteMap)

電子郵件範本 (EmailTemplate)

程序 (Workflow)

Web 資源 (WebResource)

應用程式功能區 (RibbonCustomization)

應用程式功能區與實體功能區範本的功能區自訂。 應用程式功能區未包含實體或表單層級的功能區定義。

自訂應用程式功能區經常有 Web 資源的已發行相依性。 Web 資源用來定義功能區按鈕和圖示 JScript 函數,可控制何時顯示功能區元素或當使用特定功能區控制項時執行哪些動作。 在功能區定義使用 $webresource: 指示詞關聯 Web 資源至功能區時,才會建立相依性。其他資訊:$webresource 指示詞

文章範本 (KBArticleTemplate)

包含文章的標準屬性之範本。 文章範本與 KbArticle 實體之間永遠會有內部相依性。

關係角色 (ConnectionRole)

描述兩筆記錄間之關係的角色。 每個關係角色定義哪種實體記錄可使用關係角色連結。 這可以建立關係角色和實體之間的已發行相依性。

合約範本 (ContractTemplate)

包含合約的標準屬性之範本。 合約範本與合約實體之間永遠會有內部相依性。

儀表板或實體表單 (SystemForm)

系統表單實體記錄用來定義儀表板和實體表單。SystemForm 做為實體表單時,有在實體的內部相依性。SystemForm 作為儀表板時,則沒有內部相依性。 實體表單和儀表板通常有與其內容關聯的已發行相依性。 實體表單可能有依賴實體關聯的查詢欄位。 儀表板和實體表單包含的圖表或子格將會產生檢視表的已發行相依性,而檢視表則有實體的內部相依性。 因為在儀表板或表單中顯示的內容,或是當表單包含 JScript 程式庫時,可建立 Web 資源的已發行相依性。 實體表單有任何屬性 (顯示為表單欄位) 的已發行相依性。

電子郵件範本 (EmailTemplate)

包含電子郵件訊息標準屬性的範本。 電子郵件範本通常包括從指定實體屬性插入資料的欄位。 當建立時有實體的內部相依性,電子郵件範本可以與特定實體進行連結。 全域電子郵件範本未與特定實體關聯,但是,它可以有用來提供資料的實體屬性的已發行相依性。 程序 (工作流程) 通常設定為使用電子郵件範本傳送電子郵件,建立工作流程的已發行相依性。

實體 (Entity)

用來模型化及管理 Microsoft Dynamics 365 資料的主要結構。 由於兩者間的內部相依性刪除實體時,與實體關聯的圖表、表單、實體關聯、檢視表及屬性會自動刪除。 實體通常有程序、儀表板和電子郵件範本的已發行相依性。

欄位安全性設定檔 (FieldSecurityProfile)

定義受保護屬性之存取層級的設定檔。

合併列印範本 (MailMergeTemplate)

包含合併列印文件之標準屬性的範本。 合併列印範本有相關聯實體的已發行相依性。

選項組 (OptionSet)

選項組定義一組選項。 挑選清單屬性使用選項組定義提供的選項。 許多挑選清單屬性可以使用全域選項組,所以提供的選項都是相同並在一個位置上維護。 挑選清單屬性參照全域選項組時,就會發生已發行相依性。 您無法刪除挑選清單屬性使用的全域選項組。

外掛程式組件 (PluginAssembly)

包含一或多個外掛程式類型的組件。 外掛程式註冊到通常與實體相關的活動。 這會建立已發行相依性。

程序 (Workflow)

邏輯規則集,定義自動化特定商務程序、工作或要執行的一組動作所需的步驟。 處理程序提供各種動作,會建立處理程序所參考之其他解決方案元件的已發行相依性。 每個程序也有相關聯實體的已發行相依性。

報表 (Report)

易讀版面配置中的資料摘要。 報表有在報表中所含的所有實體或屬性資料的已發行相依性。 每個報表也必須報表類別相關,建立稱為報表相關類別 (ReportCategory) 的解決方案元件的內部相依性。 報表可設定為內嵌報表,建立上層報表的已發行相依性。

SDK 訊息處理步驟 (SDKMessageProcessingStep)

執行準銷售案源中要執行外掛程式的階段。

資訊安全角色 (Role)

安全性權限的群組。 使用者會擁有授與其 Microsoft Dynamics 365 系統存取權的指派角色。 實體表單可以與特定資訊安全角色關聯,控制誰可以檢視表單。 這可以建立資訊安全角色和表單之間的已發行相依性。

備註

只有從組織業務單位的資訊安全角色可以加入至解決方案。 只有具有這些資訊安全角色讀取權限的使用者可以加入至解決方案。

服務端點 (ServiceEndpoint)

可連絡的服務端點。

網站地圖 (SiteMap)

XML 資料用於控制應用程式導覽窗格。 網站地圖可連結顯示 HTML Web 資源,或在網站地圖的圖示可以使用影像 Web 資源。 當 $webresource: 指示詞用來建立這些關聯時,會建立已發行相依性。其他資訊:$webresource 指示詞

Web 資源 (WebResource)

等同於 Web 開發所使用檔案的資料。 Web 資源提供用於提供自訂使用者介面元素的用戶端元件。 Web 資源可能有實體表單、功能區和 SiteMap 的已發行相依性。 當 $webresource: 指示詞用來在功能區和 SiteMap 中建立關聯時,會建立已發行相依性。 如需詳細資訊,請參閱$webresource 指示詞

備註

Web 資源會依據相對連結依賴其他 Web 資源。 例如,HTML Web 資源可以使用 CSS 或指令碼 Web 資源。 在實體表單或圖表外顯示的 Silverlight Web 資源必須有主控 HTML Web 資源。 這些相依性不會做為解決方案相依性追蹤。

另請參閱

使用解決方案,封裝與發佈擴充功能
解決方案簡介
解決方案開發計劃
建立、匯出或匯入未受管理的解決方案
建立、安裝和更新受管理的解決方案
建立、安裝和更新受管理的解決方案
解除安裝或刪除解決方案
解決方案實體

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權