適用対象: Power Platform、ソリューション
この記事では、ターゲット環境で アップグレードまたは更新 を実行するときに発生する問題の回避策について説明します。 ランタイムの動作は、最新のソリューションでは期待どおりに動作しません。
現象
既存のソリューションにアップグレードまたは更新しようとすると、コンポーネントランタイムの動作がソリューションの予期される動作と一致しません。
この問題は、次の 2 つの原因のいずれかで、最上位レイヤーでソリューション コンポーネントの値が更新されない場合に発生します。 ソリューション コンポーネントの最上位レイヤーが アクティブ か マネージドかを確認するには、 コンポーネントのソリューション レイヤーを表示します。 Top の [レイヤーの状態] が [アクティブ] の場合、最上位レイヤーは アクティブになります。それ以外の場合は 管理されます。 ソリューションの階層化について詳しくは、こちらをご覧ください。
原因 1: 非管理対象のアクティブなカスタマイズを一番上に表示する
ターゲット環境の最上位レイヤーには、非管理対象のアクティブなカスタマイズがあります。
原因 1 の回避策
次のいずれかの回避策を使用します。
- ターゲット環境の上部にあるアクティブなカスタマイズを削除します。
- [ カスタマイズの上書き] オプションを使用して、ソリューションをもう一度アップグレードします。 [ カスタマイズの上書き] オプションを選択すると、受信した値がアクティブレイヤーにコピーされます。 アクティブなレイヤーは引き続き存在します。
次のシナリオ例は、上位レイヤーでアクティブなカスタマイズを使用してアップグレードが完了した後に、ターゲット環境のソリューション レイヤーに何が起こるかを示しています。
原因 1 のターゲットにおけるソリューションの初期状態
ここで、 A、 B、 C は、ソリューション 1、ソリューション 2、およびアンマネージド Active レイヤーからのソリューション コンポーネントの値です。
| 注文 | ソリューション | 発行元 | レイヤーの状態 |
|---|---|---|---|
| 3 | アンマネージド レイヤー (C) |
既定のパブリッシャー | アクティブです |
| 2 | 解決策 2 (B) |
出版社B | |
| 1 | 解決策 1 (A) |
出版社A |
原因 1 のカスタマイズを上書きせずにソリューションをアップグレードする
カスタマイズを上書きせずに新しい値 D でソリューション 2 をインポートした後。 ソリューション 2 を値 B から D にアップグレードしても、有効な最上位レイヤーは C のままであるため、値 D は有効ではありません。
| 注文 | ソリューション | 発行元 | レイヤーの状態 |
|---|---|---|---|
| 3 | アンマネージド レイヤー (C) |
既定のパブリッシャー | アクティブです |
| 2 | 解決策 2 (D) |
出版社B | |
| 1 | 解決策 1 (A) |
出版社A |
原因 1 のカスタマイズを上書きするソリューションをアップグレードする
ソリューション 2 を新しい値 D と 上書きカスタマイズでインポートした後。 値 D は、ソリューション 2 を値 B から D にアップグレードした後に有効になります。これは、[ カスタマイズの上書き] を使用したアップグレードでは値 D がアクティブ レイヤーにコピーされるためです。
| 注文 | ソリューション | 発行元 | レイヤーの状態 |
|---|---|---|---|
| 3 | アンマネージド レイヤー (D) |
既定のパブリッシャー | アクティブです |
| 2 | 解決策 2 (D) |
出版社B | |
| 1 | 解決策 1 (A) |
出版社A |
原因 2: 上にある別のマネージド ソリューションからのレイヤー
マネージド ソリューションの別のレイヤーが最上位レイヤーです。
原因 2 の回避策
最上位のマネージド レイヤーのソース環境に移動し、次のいずれかのアクションを実行します。
- ソリューションで必要な変更を行い、ソリューションの新しいバージョンをエクスポートしてから、ターゲット環境に再度インポートします。
- ソリューションからコンポーネントを削除し、ソリューションの新しいバージョンをエクスポートしてから、アップグレード ソリューションとしてターゲット環境にインポートします。
次のシナリオ例では、上部の別のマネージド レイヤーでアップグレードが完了した後に、ターゲットのソリューション レイヤーに対して何が起こるかを示します。
原因 2 のターゲットにおけるソリューションの初期状態
ここで、 A、 B、 および C は、ソリューション 1、ソリューション 2、およびソリューション 3 からのソリューション コンポーネントの値です。
| 注文 | ソリューション | 発行元 |
|---|---|---|
| 3 | 解決策 3 (C) |
出版社C |
| 2 | 解決策 2 (B) |
出版社B |
| 1 | 解決策 1 (A) |
出版社A |
原因 2 のカスタマイズを上書きせずにソリューションをアップグレードする
カスタマイズを上書きせずに新しい値 D でソリューション 2 をインポートした後。 有効な最上位レイヤーはソリューション 2 の C のままであるため、値 D はアップグレード後に有効ではありません。
| 注文 | ソリューション | 発行元 |
|---|---|---|
| 3 | 解決策 3 (C) |
出版社C |
| 2 | 解決策 2 (D) |
出版社B |
| 1 | 解決策 1 (A) |
出版社A |
カスタマイズの上書きを使用したソリューションのアップグレード
ソリューション 2 を新しい値 D と 上書きカスタマイズでインポートした後。 ただし、アップグレード後に値 D は有効になりません。 [カスタマイズの上書き] では、その値が最上位のアクティブ レイヤーにのみコピーされるためです。 マネージド ソリューション 3 の値 C は、最も効果的なレイヤーのままです。
| 注文 | ソリューション | 発行元 |
|---|---|---|
| 3 | 解決策 3 (C) |
出版社C |
| 2 | 解決策 2 (D) |
出版社B |
| 1 | 解決策 1 (A) |
出版社A |
アップグレードされたレイヤーに一致する最上位のマネージド レイヤーを更新する
新しい値 D を使用してソリューション 2 をインポート した後。値 D を有効な最上位レイヤーにするには、最上位レイヤー C を削除するか、ソリューション 3 の値が D になるように変更してから、ソリューション 3 をエクスポートしてインポートします。
| 注文 | ソリューション | 発行元 |
|---|---|---|
| 3 | 解決策 3 (D) |
出版社C |
| 2 | 解決策 2 (D) |
出版社B |
| 1 | 解決策 1 (A) |
出版社A |