Package Deployer でアプリを展開する
Package Deployer を使用すると、管理者はパッケージを Microsoft Dataverse 環境に展開できます。 これらのパッケージは、独立系ソフトウェア ベンダー (ISV) が認定ソリューションを顧客環境に展開する場合にも使用されます。 開発者は、パッケージの構成、およびインストール フェーズで実行されるコードの構築を支援できます。
展開パッケージは、複数のソリューション、参照データ、およびカスタム ロジックのインストールを含む完全なアプリをインストールできるという点において、単一の Dataverse ソリューションとは異なります。 パッケージは、次に示すもののいずれかまたはすべてで構成されます。
1 つ以上の Dataverse ソリューション ファイル
フラット ファイル、または構成移行ツールからエクスポートした構成データ ファイル
パッケージが Dataverse インスタンスに展開される前、最中、または後に実行できるカスタム コード
展開プロセスの最初と最後に表示できるパッケージ固有の HTML コンテンツ。 この機能は、パッケージに展開されるソリューションとファイルの説明を提供する場合に役立ちます。
パッケージの構築
Microsoft からは、パッケージを作成するための Visual Studio テンプレートが提供されています。 負荷レベルは、インストール中に実行されるカスタム コードの量によって異なります。 多くの場合、パッケージには、1 つ以上のソリューションとデータのみが含まれています。 展開パッケージを構築する手順を次に示します。
展開プロジェクト テンプレートを使用してフォルダを初期化し、Power Platform CLI を使用して初期パッケージを作成できます。 フォルダーを作成するには、次のコマンドを使用します。
pac package init --outputDirectory MyPackage
初期化すると、必要に応じてフォルダーのカスタマイズを始めることができます。 たとえば、2 つの Dataverse ソリューションを展開するためのパッケージを作成する場合は、次のコマンドを実行して、それらのソリューションを含むパッケージを構成します。
pac package add-solution --path ..\MySolution1_1_0_0_2_managed.zip
pac package add-solution --path ..\MySolution2_2_0_0_0_managed.zip
PackageImportExtension.cs クラスを編集し、適切なイベント ハンドラーにロジックを追加することで、カスタム ロジックを追加できます。 実行するロジックの追加に利用できるイベントを次に示します。
InitializeCustomExtension - カスタム拡張機能の関数を初期化するために呼び出されます。
BeforeImportStage - ソリューションおよびデータの後で、メインのインポート プロセスが開始される前に呼び出されます。
PreSolutionImport - インポート プロセスに対する構成設定を許可するために、指定されたソリューションがインポートされる前に呼び出されます。
RunSolutionUpgradeMigrationStep - 新旧両方のソリューションがシステムに存在する場合、ソリューションのアップグレード中に呼び出されます。 この関数を使用することで、ソリューションの更新時にデータの変換やアップグレードを実行するための方法を利用することができます。
AfterPrimaryImport - すべてのインポート手順が完了した後に呼び出され、環境の最終的なカスタマイズや調整が可能になります。
構成ファイルを直接変更して、他のカスタマイズを行うこともできます。
構成を行い、カスタム コードを追加すると、パッケージを構築して、展開の準備をすることができます。 .csproj ファイルを Visual Studio に読み込むか、dotnet コマンドを使用して、MSBuild を実行できます。 次に示すのは、コマンド ラインからパッケージを構築するコマンドです。
dotnet publish
パッケージを構築すると、パッケージの展開に必要なものがすべて含まれた .zip ファイルが作成されます。
パッケージの展開
パッケージを構成すると、次のいずれかの方法でパッケージを Dataverse 環境に展開することができます。
CLI - この方法では、Power Platform CLI を使用してターゲット環境に対する認証を行ってから、pac package deploy コマンドを実行します。
対話的方法 - この方法を使用すると、パッケージのインストール先となる環境への管理アクセス権を持つユーザーは、ウィザードのような操作を利用することができます。 インストールの進行中、ユーザーには進行状況が視覚的に示されます。 このオプションでは、パッケージ展開ツールという Windows アプリケーションを使用します。このツールは、pac tool pd コマンドを使用して起動できます。
Windows PowerShell - この方法を使用すると、コマンドラインを使用したインストールができます。 これは、自動プロセスの一部として展開されるパッケージに適しています。
AppSource - この方法は、ISV のサービスが AppSource ポータルからのインストールに選択されている場合に使用します。
展開がこれらの方法でどのように機能するかの詳細については、「Package Deployer と Windows PowerShell を使用したパッケージの展開」を参照してください。
データを含む
単にソリューションをインストールする代わりに Package Deployer を使用した場合の主な相違点の 1 つは、参照/構成データを展開パッケージの一部として同梱できることです。
構成およびテスト データを環境間で転送するには、構成移行ツールが使用されます。 このようなデータを取得し、ソース管理リポジトリにデータを含め、そのデータを使用してテストを自動化する手段が提供されます。 このツールはスタンドアロンで使用することもできますが、出力として生成される data.zip ファイルを展開パッケージの一部として同梱できます。 全体的な手順は次のとおりです。
エクスポートするソース データのスキーマを定義する
スキーマを使用してデータをエクスポートする
エクスポートしたデータをインポートする
次の図に、このツールを使用するプロセスを示します。
Package Deployer と併用する場合、出力 .zip ファイルは展開パッケージに同梱できます。
構成移行を使用してデータを準備した場合の主な利点は次のとおりです。
構成データのエクスポート元のテーブルと列を選択できる。
レコード間のリレーションシップを分析し、複数のパスを使用してインポートを実行することで、データの整合性を確保できる。
クエリを使用して、パッケージに同梱するレコードのサブセットを定義できる。
ターゲット システム上の値と比較するために使用される、テーブルの列の組み合わせに基づいて各テーブルの一意性条件を定義することにより、ターゲット システム上の重複レコードを回避できる。
一致する値がない場合は、ターゲット システムに固有のレコードが作成されます。 一致するレコードが見つかった場合は、そのレコードがターゲット システムで更新されます。
エクスポートの対象として選択したテーブルのスキーマを検証し、必要なすべてのデータ/情報が存在することを確認できる。
既存のスキーマを再利用してソース システムからデータをエクスポートできる。
インポート時に日付および日時の列の値を自動的に先に進めて、デモ環境のデータを最新の状態に保つことができる。
Package Deployer を使用してアプリを展開し、複数のソリューション ファイル、データを含めて、インストール プロセス中にカスタム ロジックを実行できる。 管理者はウィザード形式のインストーラーを使用でき、個々のコンポーネントのインストール方法や構成データのインポート方法について気にする必要がない。