Dynamics CRM Package Deployer および Windows PowerShell を使用してパッケージを展開する

 

公開日: 2017年2月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

注意

ここで提供する情報は、Dynamics 365 (オンライン) バージョン 9.0 より前の Dynamics 365 のバージョン用です。 最新のドキュメントについては、「Dynamics CRM Package Deployer および Windows PowerShell を使用してパッケージを展開する」を参照してください。

Microsoft Dynamics CRM Package Deployerを使用すると、管理者はDynamics 365 (設置型)とMicrosoft Dynamics 365 (オンライン)のインスタンスにパッケージを展開できます。 「パッケージ」は、次の一部またはすべてで構成されます。

  • 1 つ以上のDynamics 365ソリューション ファイル。

  • フラット ファイル、または構成移行ツールからエクスポートされたデータ ファイル。構成移行ツールの詳細は、「構成データの管理」を参照してください。

  • パッケージ中またはその後に実行できるカスタム コードは、Microsoft Dynamics 365 に展開されます。

  • パッケージ展開プロセスの最初か最後に表示可能な、パッケージに固有の HTML コンテンツです。 これは、パッケージに展開されるソリューションおよびファイルの説明を提供するのに便利です。

開発者は、Microsoft Visual Studio でパッケージ展開テンプレートを使用して、パッケージを作成します。詳細:MSDN: CRM Package Deployer のパッケージを作成する

パッケージを作成したら、CRM パッケージ展開機能 を実行、またはツールの Windows PowerShell コマンドレットを使用して、パッケージを展開できます。

重要

運用組織でパッケージをインポートして実行する前に、運用組織の非運用組織ミラー イメージでパッケージをテストします。

パッケージを展開する前に、運用組織を必ずバックアップします。

このトピックの内容

パッケージ展開機能ツール を使用したパッケージの展開

Windows PowerShell を使用してパッケージを展開

ログ ファイルを使用してパッケージ展開に関する問題のトラブルシューティングを行う

パッケージを展開するためのベスト プラクティス

パッケージ展開機能ツール を使用したパッケージの展開

パッケージ展開機能ツール (packagedeployer.exe) を使用することにより、パッケージを次のように展開できます。

パッケージ展開機能ツール を使用してパッケージを展開する

コマンド ラインで パッケージ展開機能ツール を使用する

パッケージ展開機能ツール を使用してパッケージを展開する

パッケージ展開機能ツール は一度に 1 つのパッケージのみを処理できます。 ただし、ユーザーは、パッケージ展開機能ツール ディレクトリで利用できる複数のパッケージから、展開するパッケージを選択することができます。 ツール内の一部の画面と操作は、パッケージ定義に基づいて異なります。パッケージ展開機能ツール をインストールする必要はありません。 ダウンロードして実行するだけです。

  1. 展開するパッケージを取得します。 パッケージはファイルとフォルダーのコレクションで、パッケージ プロジェクトを Visual Studio で作成するときに Visual studio プロジェクト フォルダー (<Project>\Bin\Debug) に作成されます。 以下のものをプロジェクト デバッグ フォルダーからコピーします。

    • <PackageName> フォルダー: このフォルダーには、ソリューション、インポートの構成、およびパッケージのコンテンツが含まれています。

    • <PackageName>.dll: アセンブリにはパッケージのコードが含まれています。 既定では、アセンブリ名は Visual Studio のプロジェクト名と同じです。

    Visual Studio を使用したパッケージ作成の詳細は、「MSDN: Package Deployer ツールのためにパッケージを作成」を参照してください。

    このトピックでは、Visual Studio プロジェクト デバッグ フォルダー (<Project>\Bin\Debug) から、パッケージ フォルダーおよびアセンブリが c:\DeployPackage フォルダーにコピーされていることを前提とします。

  2. Microsoft Dynamics CRM SDK をダウンロードします。 ダウンロードした実行可能ファイルを実行し、パッケージの内容を展開します。

  3. SDK\Tools\PackageDeployer フォルダーを参照し、パッケージ フォルダーとアセンブリを c:\DeployPackage から SDK\Tools\PackageDeployer フォルダーにコピーします。

  4. ファイルをコピーした後、SDK\Tools\PackageDeployer フォルダーの PackageDeployer.exe ファイルをダブルクリックして、ツールを実行します。

  5. ツールのメイン画面で [続行] をクリックします。

  6. [Microsoft Dynamics 365 に接続] 画面で、認証の詳細を指定し、パッケージを展開する Dynamics 365 サーバーに接続します。 組織が複数あり、パッケージを展開する組織を選択する場合、[使用可能な組織の一覧を常に表示する] チェック ボックスをオンにします。 [ログイン] をクリックします。

  7. Dynamics 365サーバーに複数の組織がある場合、接続する Dynamics 365 組織を選択します。

  8. 展開するパッケージを選択し、[次へ] をクリックします。

    Select your package in the Package Deployer Tool

  9. 次の画面の指示に従い、パッケージの展開を完了します。

    画面は、展開用に選択したパッケージの定義に基づいて表示されます。パッケージ展開機能ツールを使用する完全なパッケージ展開の場合は、Unified Service Desk パッケージの展開に関する次のトピックを参照してください。Package Deployer を使用した Unified Service Desk アプリケーションの CRM サーバーへの展開

コマンド ラインで パッケージ展開機能ツール を使用する

システム管理者およびカスタマイザーは、地域言語コードなどのパラメーターをコマンドラインから packagedeployer.exe へ渡すことができます。 これらのパラメータは、コマンド ラインで パッケージ展開機能ツール を実行することによってのみ構成することができます。

注意

この機能は Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 に最初に導入されました。

使用できるパラメーターを次の表に示します。

パラメーター

内容

既定値

RuntimePackageSettings

packagedeployer.exe に、LCID と SkipChecks などのコマンド ライン パラメータを受け入れるように指示します。

適用なし

LCID=localeID

パッケージ内で利用可能なロケール ID から、英語 (米国) の場合は 1033、フランス語 (フランス) の場合は 1036 など、ロケール ID を指定します。 指定しない場合、既定の言語が使用されます。

既定の言語の使用

SkipChecks=true/false

このパラメーターは、対象の環境に他のソリューションやカスタマイズが含まれていないときにだけ使用します。 [true] に設定すると、ソリューションのインポートがセキュリティ チェックをスキップします。これにより、インポートのパフォーマンスを向上させることができます。

いいえ

次の例は、一部のセキュリティ チェックをスキップするように CRM パッケージ展開機能 に指示し、ポーランド語としてインポートするように言語を設定します。

packagedeployer.exe /Settings:"SkipChecks=true|lcid=1045"

注意

複数のパラメーターを使用してコマンド ラインで packagedeployer.exe を実行するとき、パラメーターを区切るパイプ文字 | を使用します。

packagedeployer.exe に渡すことができるパラメータおよび値については、MSDN: CRM Package Deployer のパッケージを作成する を参照してください。

Windows PowerShell を使用してパッケージを展開

また、パッケージ展開機能ツール では、パッケージを展開するための Windows PowerShell のサポートが用意されています。

パッケージを展開する PowerShell コマンドレットを使用するには、次の手順を実行します。

前提条件

コマンドレットの登録

パッケージを取得するコマンドレットの使用

Dynamics 365 インスタンスに接続するコマンドレットの使用

パッケージを展開するコマンドレットの使用

コマンドレットの詳細ヘルプの取得

前提条件

PowerShell を使用するための前提条件を以下に示します。

  • PowerShell を使用したパッケージの展開には、PowerShell 3.0 またはそれ以降が必要です。PowerShell のバージョンを確認するには、PowerShell ウィンドウを実行し、次のコマンド $Host を実行します。

  • 実行ポリシーを設定し、署名済みの PowerShell スクリプトをします。 それには、PowerShell ウィンドウを管理者として実行してから、コマンド Set-ExecutionPolicy -ExecutionPolicy AllSigned を実行します。

コマンドレットの登録

使用する前に、パッケージ展開機能ツール のために Windows PowerShell コマンドレットを登録する必要があります。 コマンドレットの登録。

  1. まだの場合、Dynamics 365 SDK のパッケージを Microsoft ダウンロード センター からダウンロードし、パッケージ ファイルを実行してパッケージの内容を抽出します。 パッケージをコンピューターの c:\CRM フォルダーにコピーしたと仮定します。パッケージ展開機能ツール および他の必須ファイルが、c:\CRM\SDK\Tools\PackageDeployer で利用できるようになります。

  2. Windows PowerShell をコンピューター上で、高い特権で実行します (管理者として実行)。

  3. Windows PowerShell ウィンドウのプロンプトが表示されてから、ディレクトリを PackageDeployer フォルダーの下の Windows PowerShell フォルダーに変更します。 この例の場合は以下の通りです。

    cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell
    
  4. RegisterXRMTooling.ps1 スクリプトを実行して、Package Deployer Windows PowerShell アセンブリ (dll) を登録し、パッケージ展開機能ツール のための Windows PowerShell スナップインをインストールします。 そのためには、次のコマンドを入力し、ENTER キーを押します。

    .\RegisterXRMTooling.ps1
    
  5. XRM ツールのための Windows PowerShell スナップインを追加します。 これにより、コマンドレット Get-CrmConnection および Get-CrmOrganizations が登録されます。

    Add-PSSnapin Microsoft.Xrm.Tooling.Connector
    
  6. Package Deployer のための Windows PowerShell スナップインを追加します。 これにより、コマンドレット Get-CrmPackages および Import-CrmPackage が登録されます。

    Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment
    

これで、これらの Windows PowerShell コマンドレットを使用する準備ができました。 登録済みのコマンドレットを一覧表示するには、Windows PowerShell ウィンドウのプロンプトに対して次のコマンドを実行します。

Get-Help “Crm”

パッケージを取得するコマンドレットの使用

コマンドレットを使用する前に、パッケージを PackageDeployer フォルダー (この場合は、c:\CRM\SDK\Tools\PackageDeployer) にコピー済みであることを確認します。 パッケージはファイルとフォルダーのコレクションで、Visual Studio でプロジェクトを作成時に Visual Studio プロジェクト フォルダー (<プロジェクト>\Bin\Debug\Bin\Debug) に作成されます。 プロジェクト デバッグ フォルダーの内容全体を [PackageDeployer] フォルダーにコピーします。Visual Studio を使用するパッケージ作成の詳細については、「MSDN: CRM Package Deployer のパッケージを作成する」を参照してください。

  1. PowerShell ウィンドウで、以下のコマンドレットを使用して、指定したフォルダー (この例では、c:\CRM\SDK\Tools\PackageDeployer) でインポートできるパッケージのリストを返します。

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
    
  2. フォルダー内のパッケージの詳細が必要な場合は、[Get-CrmPackages] コマンドレットを [–PackageName] パラメーターと共に使用して、パッケージ定義を含むディレクトリのアセンブリ名を指定します。

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll
    
  3. パッケージ アセンブリの場所は、Get-CrmPackages のコマンドレットを使用して変数に保存できます。 次に、それは PackageDirectory パラメーターの値を指定するため Import-CrmPackage コマンドレットで共有されるかもしれません。 たとえば、$MyPackages という変数のGet-CrmPackages コマンドレットから返された、 1 つ以上のパッケージの情報を保存できます。

    $MyPackages = Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer 
    

    パッケージをすべて表示します。

    $MyPackages
    

    3 番目のパッケージのみ表示します。

    $MyPackages[2].PackageAssemblyLocation
    

    次に、0 から n までの配列内の各パッケージを参照できます。 たとえば、このコマンドレットは $MyPackages にある 1 番目のパッケージをインポートします。

    Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation
    

    注意

    PackageAssemblyLocation パラメーターと、パッケージのフォルダの場所と名前を表示する機能は、Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) で最初に導入されました。詳細:Dynamics 365 SDK

Dynamics 365 インスタンスに接続するコマンドレットの使用

  1. Microsoft Dynamics 365 (オンライン) または Dynamics 365 (設置型) インスタンスに接続する資格情報を入力します。 以下のコマンドを実行すると、Dynamics 365 インスタンスに接続するためのユーザー名とパスワードを入力するプロンプトが表示され、それらは Dynamics 365 サーバーへの接続に使用するために $Cred 変数に保存されます。

    $Cred = Get-Credential
    
  2. Microsoft Dynamics 365 (オンライン) または Dynamics 365 (設置型) インスタンスに接続するため、以下のコマンドを使用します。 接続情報は $CRMConn 変数に保存します。

    • Dynamics 365 (設置型) インスタンスに接続する場合は以下の通りです。

      $CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred
      
    • Microsoft Dynamics 365 (オンライン) サーバーに接続する場合は以下の通りです。

      $CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred
      

      注意

      DeploymentRegion パラメーターの有効な値は、NorthAmericaEMEA、APAC、SouthAmericaOceaniaJPNおよび NorthAmerica2 です。OnlineType パラメーターの有効な値は、Office365、および LiveID です。

  3. 手順 2 でコマンドを実行するときに、入力した資格情報が検証されます。

パッケージを展開するコマンドレットの使用

次に、$CRMConn 変数に保存された Dynamics 365 接続情報を使用して、パッケージを Dynamics 365 インスタンスに展開します。 次のコマンドは、c: \UnpackedFiles フォルダーにパッケージを展開し、パッケージを逆アセンブルし、c: \MyLogFiles フォルダーのログ ファイルに情報を記録します。

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose

注意

  • CrmConnection、PackageDirectory、およびPackageName パラメーターは必須です。

  • 手動でパッケージ フォルダーを指定する代わりに、PackageDirectory パラメーターで変数を使用できます。詳細:パッケージを取得するコマンドレットの使用

  • PackageName パラメーターでは、パッケージ定義を含むアセンブリ名を指定する必要があります。

  • パッケージ展開時にパッケージ ファイルが解凍されない場合、UnpackFilesDirectory パラメーターを指定する必要はありません。 パッケージを Visual Studio で定義中、ImportConfig.xml ファイル内の agentdesktopzipfile パラメーターを使用して、ファイルを解凍するかどうか指定します。詳細:MSDN: CRM Package Deployer のパッケージを作成する

  • Verbose パラメーターはオプションで、パッケージ展開プロセス中に実行されるアクティビティの詳細ログを表示するために使用します。

  • オプションの RuntimePackageSettings パラメーターは、次のパラメーターとともに使用できます。

    • LCID=localeID パラメータは、パッケージ内で利用可能なロケール ID から、英語 (米国) の場合は 1033、フランス語 (フランス) の場合は 1036 など、ロケール ID を指定します。 指定しない場合、既定の言語が使用されます。

    • この

      SkipChecks=true/false パラメーターは、対象の環境に他のソリューションやカスタマイズが含まれていないときにだけ使用する必要があります。 [true] に設定すると、ソリューションのインポートがセキュリティ チェックをスキップします。これにより、インポートのパフォーマンスを向上させることができます。

  • LogWriteDirectory パラメーターを使用するときに指定するフォルダーは既に存在している必要があり、Import-CrmPackage コマンドレットを実行するユーザーは、フォルダーに対する書き込みアクセス許可を持っていることが必要です。 また、LogWriteDirectory パラメーターを使用する際には -Verbose パラメーターが必要です。

    LogWriteDirectory パラメーターは、Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) で最初に導入されました。詳細:Dynamics 365 SDK

次の例のコマンドは、SampleCRMPackage という名前のパッケージをインポートして、パッケージをインポートする言語として米国英語 (1033) を指定します。

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles –RuntimePackageSettings LCID=1033

コマンドレットの詳細ヘルプの取得

PowerShell ウィンドウで、Get-Help コマンドレットをコマンドレット名と共に使用して、そのコマンドレットの詳細ヘルプを表示します。 たとえば、Import-CrmPackage コマンドレットの詳細ヘルプを取得するには以下を実行します。

Get-Help Import-CrmPackage -full

コマンドレットのオンライン ヘルプを表示するには、「CRM PowerShell 参照」を参照してください。

ログ ファイルを使用してパッケージ展開に関する問題のトラブルシューティングを行う

パッケージ展開機能ツール では、誰かがツールおよび展開パッケージを使用して Microsoft Dynamics 365 にサインインするときに発生する可能性のある、エラー詳細情報を得るための、ログ記録をサポートしています。 既定では、ツールは、ツールを実行するコントロールの以下の場所で利用できる、3 つのログ ファイルを生成します。c:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<バージョン>。 異なるフォルダーを指定するには、- LogWriteDirectory の PowerShell コマンドレット パラメーターを使用します。詳細:パッケージを取得するコマンドレットの使用

  • Login_ErrorLog.log: ツールを使用して Dynamics 365 インスタンスにサインインするときに発生する問題に関する詳細を提供します。 サインイン時に問題がある場合は、ツールのログイン画面に、ログ ファイルへのリンクと共にメッセージが表示されます。 メッセージには、ログイン要求の処理中に発生したエラーが示され、ユーザーはエラー ログを表示できます。 メッセージ内のリンクをクリックすると、このログ ファイルを表示できます。 ログ ファイルは、最初にツールでサインインの問題が発生したときに作成されます。 その後、ログ ファイルは、サインインに関する問題が発生するときに、その情報を記録するために使用されます。

  • PackageDeployer.log: パッケージの展開時にツールで実行される各タスクに関する詳細情報を提供します。 画面の下部の [ログ ファイルの表示] リンクをクリックすると、ツールからのログ ファイルを表示できます。

  • ComplexImportDetail.log: ツールを使用した最後の展開でインポートされたデータに関する詳細情報を提供します。 このツールを使用してパッケージを展開するたびに、既存の詳細情報が、ログ ファイルから同じディレクトリにある ComplexImportDetail._old.log という名前のファイルに移動されます。ComplexImportDetail.log ファイルには、ツールを使用して行われる最新インポートの情報が表示されます。

パッケージを展開するためのベスト プラクティス

パッケージを展開するときに、Dynamics 365 管理者は、次を実行する必要があります。

  • アセンブリをソースまで追跡できるように、署名付きパッケージのアセンブリに要求します。

  • 運用環境サーバーで実行する前に、非運用インスタンス (可能であれば、運用環境インスタンスのミラー イメージ) でパッケージをテストします。

  • パッケージ展開前に、運用環境インスタンスをバックアップします。

関連項目

MSDN: CRM Package Deployer のパッケージを作成する
Dynamics 365 の管理

© 2017 Microsoft. All rights reserved. 著作権