環境間のソリューションの転送

完了

ソリューションを使用する主な利点は、Microsoft Power Platform 環境からソリューションをインポートおよびエクスポートできることです。 この機能により、次のような主要なユース ケースが可能になります。

  • エクスポートされたソリューションの他の環境へのインポート

  • ソース管理に格納するためのソリューションのエクスポート

  • ソリューション コンポーネントのオンデマンド バックアップと、環境全体を復元することなくソリューション コンポーネントを復元する機能

ソリューション エクスプローラーからソリューションを手動でエクスポートおよびインポートしたり、Microsoft Power Platform Build Tools を使用して自動インポートやエクスポートを行うことができます。

管理ソリューションと管理されていないソリューション

ソリューションには管理ソリューションと管理されていないソリューションがあります。 この指定によって、そのソリューションで実行できる操作が決まります。 クラウド フローやその他のソリューション コンポーネントを変更する間は、管理されていないソリューションを開発環境で使用します。 管理ソリューションは、そのソリューションの開発環境ではない環境に配置するために使用します。 ソリューションのタイプは、エクスポートするときに選択によって決まります。エクスポートされるソリューションは、別の環境にインポートされると有効になります。

たとえば、一般的なプラクティスとして、クラウド フローと他のソリューション コンポーネントをビルドする (管理されていない) ソリューションを使用する開発環境を用意します。 その後、テスト環境に発行する準備ができたら、管理されていないバージョンおよび管理バージョンのソリューションをエクスポートします。 管理されていないソリューションは、作業のバックアップ コピーとして安全に保管できます。 また、SolutionPackagerMicrosoft Power Platform CLI のようなツールを使用して、エクスポートされた管理されていないソリューションから個々のファイルを抽出し、GitHub や Microsoft Azure DevOps などのソース管理にチェックインすることも可能です。

さらに、開発環境の再作成が必要な場合にも、管理されていないソリューションを使用することができます。 そのため、常にエクスポートされた管理されていないソリューションが作成されるようにします。 テスト環境にインポートする場合は、管理バージョンのソリューション ファイルが使用されます。 テストに成功すると、同じ管理バージョンが実稼働環境にインポートされます。 重要なのは、ソリューション コンポーネントに対する変更は、開発環境でのみ行われるという点です。 この概念を強化するために、管理ソリューション・コンポーネントを直接変更することはできないので、誤った変更を防ぐのに役立ちます。

ソリューションのエクスポート

ソリューション エクスプローラーからソリューションを手動でエクスポートする場合、必ずいくつかの選択を求められます。 最初の選択は、すべての変更を発行および問題のチェックです。

エクスポート前オプションのスクリーンショット。

すべての変更を発行オプションは、クラウド フローでは必要ありませんが、他のソリューション コンポーネントがある場合は便利です。 ユーザー インターフェイス コンポーネントを変更する一部のカスタマイズでは、エクスポート前に発行する必要があります。

すべてのソリューション コンポーネントについて分析を実行して問題を確認します。 この分析はフロー チェッカーに似ていますが、ソリューションのすべてのコンポーネントを対象としており、問題について警告します。

2 つ目のプロンプトでは、バージョン番号の入力が求められ、管理または管理されていないを選択します。

このソリューションのエクスポート プロンプトの

既定では、エクスポートするたびにバージョン番号が増分されます。 基本的に、同じセッションで管理ソリューションと管理されていないソリューションをエクスポートした場合、両者のバージョン番号は異なりますが、同じバージョンを表します。 この状況を回避するには、両方のバージョンで同じになるようにバージョンを手動で調整します。

次としてエクスポート オプションでは、エクスポートを 2 回 (管理用に 1 回、管理されていない用に 1 回) 実行することをお勧めします。 管理ソリューションをエクスポートする際は、管理されていないソリューションのコピーがエクスポートされていることを確認してください。

ソリューションをインポートする

ソリューションを別の環境に配置するには、エクスポートしたソリューション ファイルをインポートします。 管理ソリューション ファイルまたは管理されていないソリューション ファイルをインポートできます。

管理されていないソリューションのインポートは、開発環境をターゲットにする必要があります。 インポートが完了すると、ソリューション コンポーネントが環境にマージされます。 この操作を元に戻すことはできません。また、ソリューションを削除しても、ソリューションだけが削除され、環境にマージされたソリューション コンポーネントは削除されません。 ソリューションが既に環境に存在する場合は、インポートが更新され、既存の一致するリソースが上書きされます。 すべてのソリューションのインポートは付加的であり、新しいバージョンに存在しないソリューション コンポーネントは、更新のインポートが完了した後も環境に存在します。 前回のエクスポート以降の最新の作業を誤って上書きしないように、また、目的の環境に対しては管理されていないソリューションだけをインポートするようにしてください。

管理ソリューションをインポートする場合は、テストや実稼働などの非開発環境をターゲットにする必要があります。 管理されていないソリューションとは異なり、管理ソリューションをインポートすると、そのソリューションは同じ方法でマージされるのではなく、環境に対する変更を追跡および管理するための独自のカスタマイズ レイヤーが作成されます。 ソリューションのレイヤー化により、管理ソリューションのソリューション コンポーネントに加えられた変更を追跡できます。 更新を管理ソリューションにインポートする場合、既定の動作ではインポートがアップグレードとして処理されます。 更新したソリューションのバージョンがインポートされると、古いバージョンは削除されます。 古いバージョンが削除されると、新しいバージョンに含まれなくなったソリューション コンポーネントが環境から削除されます。 たとえば、開発中のクラウド フローを削除した場合に、新しいバージョンがテスト環境にインポートされると、削除されたフローもテスト環境から削除されます。 管理ソリューションの削除は、アンインストールと同じです。他のソリューションから参照されていないすべてのソリューション コンポーネントが、そのデータを含めて削除されます。 ソリューションが管理ソリューションとして配置されている環境では、将来の更新を妨げる、管理されていない変更が作成されるため、クラウドフローを直接手動で更新することは避けるべきでしょう。 たとえば、実稼働環境でクラウド フローを修正した場合、新しいバージョンのインポートの次の配置はうまくいきます。ただし、実稼働環境のクラウド フローは更新されません。 この問題は、ソリューション レイヤーの管理機能 を使用することで特定し、解決することができます。 また、開発環境でのみ変更を行うことで、この問題を回避することができます。

どちらのタイプのソリューションをインポートする場合でも、以前に確立されていない接続参照を更新するよう求められます。

インポート時に接続への接続参照を設定するスクリーンショット。

さらに、値がない環境変数がソリューションにある場合は、この環境の現在の値を入力するよう求められます。

ソリューションのインポートの際の環境変数のスクリーンショット。

ソリューションのインポートとエクスポートはバックグラウンドで実行され、完了が通知されます。