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 ファイルを展開パッケージの一部として同梱できます。 全体的な手順は次のとおりです。

  1. エクスポートするソース データのスキーマを定義する

  2. スキーマを使用してデータをエクスポートする

  3. エクスポートしたデータをインポートする

次の図に、このツールを使用するプロセスを示します。

このツールを使用する構成スキーマ プロセスの図。

Package Deployer と併用する場合、出力 .zip ファイルは展開パッケージに同梱できます。

構成移行を使用してデータを準備した場合の主な利点は次のとおりです。

  • 構成データのエクスポート元のテーブルと列を選択できる。

  • レコード間のリレーションシップを分析し、複数のパスを使用してインポートを実行することで、データの整合性を確保できる。

  • クエリを使用して、パッケージに同梱するレコードのサブセットを定義できる。

  • ターゲット システム上の値と比較するために使用される、テーブルの列の組み合わせに基づいて各テーブルの一意性条件を定義することにより、ターゲット システム上の重複レコードを回避できる。

  • 一致する値がない場合は、ターゲット システムに固有のレコードが作成されます。 一致するレコードが見つかった場合は、そのレコードがターゲット システムで更新されます。

  • エクスポートの対象として選択したテーブルのスキーマを検証し、必要なすべてのデータ/情報が存在することを確認できる。

  • 既存のスキーマを再利用してソース システムからデータをエクスポートできる。

  • インポート時に日付および日時の列の値を自動的に先に進めて、デモ環境のデータを最新の状態に保つことができる。

Package Deployer を使用してアプリを展開し、複数のソリューション ファイル、データを含めて、インストール プロセス中にカスタム ロジックを実行できる。 管理者はウィザード形式のインストーラーを使用でき、個々のコンポーネントのインストール方法や構成データのインポート方法について気にする必要がない。