解決方案概念
解決方案是在 Power Apps 和 Power Automate 中實作應用程式生命週期管理 (ALM) 的機制。 本文說明下列主要解決方案概念:
- 兩種類型的解決方案 (受控或非受控)
- 解決方案元件
- 解決方案週期
- 解決方案發行者
- 解決方案與解決方案元件相依性
受管理和未受管理的解決方案
一個解決方案一定是受管理的或未受管理的,二擇一。
開發了非受控解決方案。 當您變更應用程式時,會在開發環境中使用未受管理解決方案。 未受管理的解決方案可以匯出為未受管理的或受管理的。 匯出的未受管理版本解決方案應登記至您的來源控制系統中。 未受管理的解決方案應視為您的 Microsoft Power Platform 資產來源。 刪除非受控解決方案時,僅刪除其中包含的任何自訂項目的解決方案容器。 所有未受管理的自訂仍然有效,且屬於預設解決方案。
受控解決方案已部署。 受管理的解決方案可部署到任何不是該解決方案開發環境的環境。 這些環境包括測試、使用者驗收測試 (UAT)、系統整合測試 (SIT) 和實際執行環境。 受管理的解決方案可以獨立於環境中的其他受管理解決方案而提供服務。 作為 ALM 的最佳作法,受管理解決方案的生成方式應透過把未受管理的解決方案匯出為受管理的,並將其視為組建成品。 此外:
- 您無法在受管理的解決方案中直接編輯元件。 若要編輯受管理的元件,請先將它們新增至未受管理的解決方案。
- 編輯受控元件時,您會在非受控自訂項目和受控解決方案之間建立相依性。 如果存在相依性,則在您移除相依性之前,無法解除安裝受管理的解決方案。
- 有些受管理的元件無法編輯。 若要確認元件是否可以編輯,請查看受管理的屬性。
- 您無法匯出受管理的解決方案。 但是您可以將非受控解決方案匯出為受控解決方案。
- 刪除 (解除安裝) 受管理的解決方案時,其中隨附的所有自訂和擴充功能都會遭移除。
- 您無法在受管理的解決方案中直接編輯元件。 若要編輯受管理的元件,請先將它們新增至未受管理的解決方案。
重要
- 您無法將受管理的解決方案匯入至包含初始未受管理之解決方案的相同環境。 若要測試受管理的解決方案,您需要不同的環境,以便將其匯入至其中。
- 刪除受控解決方案時,以下資料將會遺失:儲存在受控解決方案的自訂資料表中的資料,以及儲存在受控解決方案的自訂資料行中的資料 (這些列位於不屬於受控解決方案的其他資料表上)。
製作者與開發人員使用非受管理解決方案在開發環境中工作,然後將它們當成受管理解決方案,匯入其他下游環境 (例如測試)。
注意
當您在開發環境中自訂時,就是在未管理層中工作。 因此,當您將未受管理解決方案匯出,當成受管理解決方案分發至另一個環境時,受管理的解決方案將會匯入至受管理層的環境中。 更多資訊:解決方案分層
解決方案元件
元件 (也稱為物件) 代表您可以自訂的內容。 可以包含在解決方案中的任何項目即是元件。 若要檢視解決方案中所包含的元件,請開啟您想要的解決方案。 元件列在元件清單中。
注意
- 解決方案的大小最大為 95 MB。
- 您無法在受管理的解決方案中直接編輯元件。
若要查看可新增至任何解決方案的元件類型清單,請前往 ComponentType 選項。
有些元件會在其他元件中形成巢狀結構。 例如,資料表包含表單、檢視、圖表、資料行、資料表關係、訊息和商務規則。 每個元件都需要一個資料表存在。 除選擇資料行外,所有其他資料行都不能存在於資料表之外。 也就是,資料行依存於資料表。 元件的類型比前面的清單多出一倍,但大多數都嵌套在其他元件中,在應用程式中不可見。
使用元件的目的是追蹤使用受管理的屬性和所有相依性所能進行之自訂的限制,以便匯出、匯入和 (在受管理的解決方案中) 刪除,而不留下任何項目。
解決方案週期
解決方案支援下列可協助支援應用程式週期處理的動作:
- 建立。 建立和匯出非受控解決方案。
- 更新。 建立受控解決方案的更新,並將其部署到父受控解決方案。 您無法使用更新來刪除元件。
- 升級。 將該解決方案作為現有受控解決方案的升級匯入,從而刪除未使用的元件並實現升級邏輯。 升級包含彙總 (合併) 該解決方案的所有修補程式到新版的解決方案中。 解決方案升級會刪除已存在但不再包含在升級版本中的元件。 您可以選擇立即升級或分段升級,這樣就可以在完成升級之前執行一些額外的動作。
- 修補檔。 修補程式僅包含對上層受管理的解決方案的變更,例如新增或編輯元件和資產。 進行小型更新(類似 hotfix)時,請使用修補程式。 匯入修補程式時,這些修補程式會層疊在上層解決方案的最頂端。 您無法使用修補程式來刪除元件。
解決方案發行者
每個應用程式和其他解決方案元件 (例如您建立的資料表或進行的任何自訂) 都是解決方案的一部分。 由於每個解決方案都有發行者,因此您應該建立自己的發行者,而不是使用預設值。 當您建立解決方案時,您可以指定發行者。
注意
- 預設情況下,如果您不使用自訂解決方案,您將在預設系統解決方案中工作,這些解決方案稱為 Common Data Service 預設解決方案和預設解決方案。 其他資訊:預設解決方案和 Common Data Service 預設解決方案
- 首選解決方案是您指定的將成為預設解決方案的解決方案。 其他資訊:設定慣用解決方案
建立元件的解決方案發行者會視為該元件的擁有者。 元件擁有者會控制允許或限制解決方案 (包括該元件) 的其他發行者進行哪些變更。 您可以將元件的擁有權從一個解決方案移動到同一發行者的另一個解決方案中,但不能跨發行者。 在受管理的解決方案中引入元件發行者後,即無法變更元件的發行者。 由於此限制,最好定義單一發佈者,以便以後可以跨解決方案變更分層模型。
解決方案發行者指定開發應用程式的人員。 因此,您應該建立有意義的解決方案發行者名稱。
解決方案發行者首碼
解決方案發行者會包含首碼。 發行者程式首碼是協助避免命名衝突的機制。 這使得來自不同發佈者的解決方案可以安裝在同一環境中,並且幾乎不會發生衝突。 例如,此處顯示的 Contoso 解決方案包括解決方案發行者首碼 contoso。
注意
變更解決方案發行者首碼時,您必須在建立任何新的應用程式或中繼資料項目之前先這樣做,因為您無法在建立中繼資料項目之後變更其名稱。
其他資訊:
解決方案相依性
由於受管理的解決方案層疊方式各有不同,某些受管理的解決方案可能依賴於其他受管理的解決方案中的解決方案元件。 一些解決方案發佈商利用這一點來建立模組化的解決方案。 您可能需要先安裝「基本」受控解決方案,然後安裝第二個受控解決方案以進一步自訂基本受控解決方案中的元件。 第二個受管理的解決方案依存於屬於第一個解決方案之一部分的解決方案元件。
系統會追蹤解決方案之間的這些相依性。 如果您嘗試安裝需要基底解決方案的解決方案,但是該基底解決方案未安裝,則無法安裝解決方案。 您會收到一則訊息,提示該解決方案需要先安裝另一個解決方案。 同樣地,因為相依性,當解決方案依存的基底解決方案仍然已安裝時,您無法解除安裝基底解決方案。 您必須先解除安裝相依的解決方案,才能解除安裝基底解決方案。 其他詳細資訊:移除相依性
解決方案元件相依性
解決方案元件表示您可能可以自訂的項目。 任何可包含在解決方案中的項目都是解決方案元件,但有些元件會相依於其他元件。 例如,網站資料行和帳戶摘要報告都依存於帳戶資料表。 其他詳細資訊,請參閱解決方案元件相依性追蹤