元件程式庫應用程式生命週期管理 (ALM)
元件程式庫是一種特殊類型的畫布應用程式,可包含一或多個畫布元件。 然後,環境中的所有其他畫布應用程式都可以使用這些程式庫元件。 此功能可讓您在環境中的所有應用程式之間建立可重複使用的共用元件,這與僅限於一個應用程式的應用程式級元件不同。
若要使用元件程式庫中的元件,必須先將元件匯入至畫布應用程式。 匯入之後,您可以將元件新增至任何應用程式畫面。 元件程式庫的元件定義中的任何更新都會提示您視需要查看並合併變更或打開應用程式進行編輯。 您也可以使用標準 Microsoft Dataverse 解決方案,將元件程式庫與相依應用程式移至另一個環境。
注意
在本文中,「匯入」一詞是指將元件從元件程式庫匯入應用程式,而不應將其匯入至 Dataverse 中。
當元件程式庫中的元件匯入至畫布應用程式時,該元件的定義會複製到畫布應用程式的定義中。 元件定義匯入之後,就該元件定義而言,應用程式是「獨立的」。 應用程式製作者可以選擇編輯元件,並在應用程式中建立元件的本機執行個體。 此時,並不會直接連結到元件來源的元件程式庫。 如果隨後將畫布應用程式遷移到不存在元件程式庫的其他環境,也會套用此內含特性。 您可以繼續在目標環境的應用程式中建立匯入元件定義的執行個體,而且應用程式仍然可以發佈和開啟。 在這種情況下,使用中的應用程式不會提示或接收任何新的更新。
為了維持應用程式與元件程式庫之間的關聯,請務必使用元件程式庫對元件進行任何變更,而不是在使用的應用程式中編輯元件。
畫布應用程式和元件程式庫解決方案支援
與其他解決方案物件相依性一樣,如果畫布應用程式從元件程式庫匯入畫布元件,其將相依於該元件程式庫。 為了將應用程式移至新環境,您需要將元件程式庫打封裝在相同的解決方案中,或作為先決條件安裝。 應用程式與元件程式庫的相依性會在目標環境中維持。 稍後,當使用解決方案將包含更新元件的元件程式庫匯入目標環境時,現有的應用程式會使用一般元件更新流程來取得新元件定義。
在解決方案中建立和匯出元件程式庫
您可以直接從解決方案中建立元件程式庫,也可以將它新增至現有的解決方案。
當元件程式庫儲存在 Dataverse 可用的環境中時,元件程式庫會自動新增至預設解決方案中。 為具有預設 CDS 發行者首碼的元件程式庫產生一個唯一的邏輯名稱。 這種行為是為了確保解決方案系統知道其狀態,並可從使用元件程式庫邏輯名稱的應用程式連結相依性。
注意
在元件程式庫 ALM 功能推出之前建立的元件程式庫必須先進行編輯、發佈,且必須明確關閉編輯器,才能啟用 ALM 功能。 您可以透過預設解決方案中的元件,來檢查元件程式庫的 ALM 就緒狀態。
解決方案中的元件程式庫也支援允許自訂受管理屬性,這些屬性可控制目標環境中元件程式庫的行為。
若關閉此設定,並將解決方案匯出至目標環境,您將無法編輯元件程式庫。
元件程式庫相依性
使用元件程式庫中元件的應用程式,將在解決方案基礎結構中標示為相依元件。 此行為適用於在指定環境中新增至任何 Dataverse 解決方案的所有應用程式。 您仍然可以在解決方案外部建立應用程式,但是這些應用程式不會有任何解決方案依賴性。 您可以稍後將這些應用程式新增至解決方案,使其成為解決方案 ALM 的一部分。
如果您匯入的解決方案只具有使用元件程式庫中元件的應用程式,但不包括該元件程式庫,您將會看到以下訊息:
「由於缺少 <app name> 的相依性,匯出失敗」。
在這種情況下,您可以選擇先安裝元件程式庫解決方案,或將元件程式庫與包含畫布應用程式的解決方案組合在一起。 任何一個步驟都將確保應用程式會在目標環境中建立相依性。
當程式庫更新並透過解決方案匯入較新的元件版本時,應用程式將會收到通知,並在打開應用程式以進行編輯時接收更新。
注意
如果元件程式庫受管理屬性允許自訂關閉,則無法在目標環境中編輯元件程式庫。
相依性是根據應用程式的最新發佈狀態來計算的。 如果還原舊版本的應用程式,而該應用程式不使用程式庫元件,則會從應用程式和解決方案中移除該相依性。 從元件程式庫中將元件匯入至應用程式,而不使用它也會建立相依性,因為未使用的程式庫元件在應用程式中仍然可供將來使用。
提示
從使用應用程式內部的元件程式庫中編輯元件會建立一個本機複本。 此時,您仍然可以透過插入窗格使用程式庫元件。 若要完全移除相依性,請從插入 > 程式庫元件 > ... (省略符號) > 從應用程式中移除中移除元件。
最佳做法和疑難排解
將程式庫中元件的數目限制為 20 個以獲得最佳效能。 預先規劃並建立多個元件程式庫,因為其中的元件數目可能會隨著時間的推移而增加。 這種方法也會減少在環境中移動應用程式時的解決方案負載。
從發佈元件程式庫到應用程式可用之間存在延遲,最多可能需要 5 分鐘。
如果應用程式無法從安裝解決方案的目標環境中的程式庫元件接收更新,請使用下列動作進行檢查:
- 在目標環境中對元件程式庫所做的變更會駐留在元件的最上層。 接著,這些自訂會定義元件的執行階段行為。 若要移除這些非受控自訂,請參閱移除非受控層。
- 從解決方案檢視表中確定元件程式庫邏輯名稱。 若程式庫未明確新增至解決方案,請使用預設解決方案。
- 使用 檔案 > 另存新檔 > 本電腦將使用程式庫元件的應用程式下載到本機電腦。 將下載的檔案重新命名為 .zip 副檔名,並解壓縮該封裝。 打開 Properties.json 檔案,然後搜尋關鍵字 "LibraryDependencies"。 您應該會看到相符的程式庫邏輯名稱。
- 如果您正在使用解決方案,請檢查畫布應用程式是否已將元件程式庫正確標識為解決方案相依性。 如果解決方案未將元件程式庫正確標識為解決方案相應性,則表示尚未正確建立元件程式庫連結的應用程式相依性。 在這種情況下,請諮詢解決方案提供者以解決問題。
- 如果您是解決方案發行者,請檢查元件程式庫是否與解決方案中的程式庫邏輯名稱儲存在一起,且與元件程式庫 .msapp 封裝中參考的相同。
解決方案匯出會一律匯出最新版本的元件程式庫。 因此,在透過解決方案匯出應用程式之前,請一律使用最新的元件版本更新應用程式。 此動作會確保應用程式的元件版本與最新版本的元件庫版本相同。 當應用程式和程式庫第一次移至目標環境時,會將其視為同步處理。因此,在編輯應用程式時,系統不會提示您是否有可用的更新。