コード生成ツール (CrmSvcUtil.exe) を使用して事前バインド型エンティティ クラスを作成する

 

公開日: 2017年1月

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

CrmSvcUtil.exe は、Microsoft Dynamics 365 (オンラインおよび設置型) で使用するコマンド ライン コード生成ツールです。 このツールは、Microsoft Dynamics 365 で使用されるエンティティ データ モデル エンティティを表す事前バインド .NET Framework クラスを生成します。 このツールは、SDK パッケージの SDK\Bin フォルダーにあります。 Microsoft Dynamics CRM SDK パッケージをダウンロードします。

このトピックの内容

コード生成ツールの概要

コード生成ツールの実行

パラメーター

使用例

構成ファイルの使用

トレースの有効化

コード生成ツールの概要

CrmSvcUtil.exe ツールは、Microsoft Visual C# または Microsoft Visual Basic .NET の出力ファイルを生成します。このファイルには、組織内のエンティティを表す、厳密に型指定されたクラスが格納されています。 これには、ユーザー定義のエンティティと属性が含まれます。 エンティティごとに 1 つのクラスがこの出力ファイルに格納され、ユーザー定義コードを作成する作業を容易にする事前バインドと Microsoft Visual Studio でサポートする IntelliSense を提供します。 生成されるクラスは部分クラスであり、別のファイルにユーザー定義のビジネス ロジックを作成することで拡張できます。 このツールに対する拡張機能を作成することもできます。 詳細については、「コード生成ツール用の拡張機能の作成」を参照してください。

また、このツールを使用して、エンティティ データ モデルでのエンティティ コンテナーとして動作する OrganizationServiceContext からの派生クラスを生成することもできます。 このサービス コンテキストを利用して、変更内容を追跡したり、ID、同時実行、および関連付けを管理したりすることができます。 また、このクラスは、Microsoft Dynamics 365 に対してレコードの挿入、更新、および削除を実行する SaveChanges メソッドも提供します。 詳細については、「組織サービス コンテキスト クラスの使用」を参照してください。

コード生成ツールは複数のパラメーターを受け取ります。その値に基づいて、作成するファイルの内容が決定されます。 パラメーターは、ツールを実行するときにコマンドラインから入力するか、.NET に接続されたアプリケーションの構成ファイルに記述して渡すことができます。

コード生成ツールによって作成されるクラスは、クラス ライブラリに組み込むことで、Microsoft Dynamics 365 を使用するプロジェクトから参照できるように設計されています。 ツールを使用してクラス ファイルを生成した後で、そのファイルを Visual Studio プロジェクトに追加する必要があります。 また、生成したクラスが依存する複数のアセンブリへの参照を追加する必要があります。

次は、生成したコード ファイルを使用するときにこのプロジェクトで参照する必要があるアセンブリの一覧です。

  • Microsoft.Crm.Sdk.Proxy.dll

  • Microsoft.Xrm.Sdk.dll

これらのアセンブリは、SDK の SDK\Bin フォルダーにあります。 Microsoft Dynamics CRM SDK パッケージをダウンロードします。

コード生成ツールの実行

CrmSvcUtil.exe ツールは、SDK\Bin フォルダーから実行します。 このツールを別の場所のフォルダーから実行する場合は、Microsoft.Xrm.Sdk.dll アセンブリのコピーが同じフォルダーにあることを確認します。

次のサンプルは、設置型の Microsoft Dynamics 365 環境でツールをコマンド ラインから実行するときの構文を示しています。 環境で実際に使用されるパラメーター値を指定してください。

    CrmSvcUtil.exe /url:http://<serverName>/<organizationName>/XRMServices/2011/Organization.svc    /out:<outputFilename>.cs /username:<username> /password:<password> /domain:<domainName>    /namespace:<outputNamespace> /serviceContextName:<serviceContextName>

次のサンプルは Microsoft Dynamics 365 (オンライン) のコマンド ラインからツールを実行するときの構文を示しています。 取引先企業およびサーバーに適したパラメーター値を指定します。

    CrmSvcUtil.exe /url:https://<organizationUrlName>.api.crm.dynamics.com/XRMServices/2011/Organization.svc    /out:<outputFilename>.cs /username:<username> /password:<password>     /namespace:<outputNamespace> /serviceContextName:<serviceContextName>

username パラメータには、Microsoft アカウントまたはMicrosoft Office 365のサインインに使用するユーザー名を入力します。[設定] を選択し、[カスタマイズ] に移動して、[開発者リソース] を選択すると、Web アプリケーションで正しい URL を検索することができます。 URL は [組織のサービス] の下に表示されます。

サポートされているコマンド ライン パラメーターを表示するには、次のコマンドを使用します。

    CrmSvcUtil.exe /?

Microsoft Dynamics 365 (オンライン) に対して Microsoft アカウント ID プロバイダーを使用してツールを実行するときに、deviceiddevicepassword をパラメーターとしてコマンド ラインから指定する必要はなくなりました。 ツールは、デバイスを自動的に登録します。 ただし、最初にコンパイルしてからここに示す DeviceRegistration サンプル コードを実行すると、デバイスを手動で登録し、これらのパラメーターの値を取得することができます。

個人用のデバイス ID とパスワードの生成

  1. DeviceRegistration プロジェクト (SDK\Tools\DeviceRegistration\DeviceRegistration.csproj) を開いて、ビルドします。

  2. 実行可能ファイルをコマンドラインから実行します。 デバイスを登録する場合は、/operation パラメーターを Register に設定します。

        C:\deviceregistration.exe /operation:Register
    
  3. 表示されるデバイス ID とパスワードの値をコピーしておき、CrmSvcUtil ツールを実行するときに deviceid パラメーターと devicepassword パラメーターの値として使用します。

パラメーター

次の表は、コード生成ツールのパラメーターと、それらの使い方の簡単な説明です。

パラメーター

ショートカット

説明

必須出席者

deviceid

di

認証用のオンライン サーバーに接続するときに使用するデバイス ID。 デバイス ID がディスク上の %USERPROFILE%\LiveDeviceID フォルダーに保存されていない場合にのみ必須。Microsoft アカウント ID プロバイダーとしてのみ使用します。

いいえ

devicepassword

dp

認証用のオンライン サーバーに接続するときに使用するデバイス パスワード。 デバイス パスワードがディスク上の %USERPROFILE%\LiveDeviceID フォルダーに保存されていない場合にのみ必須。Microsoft アカウント ID プロバイダーとしてのみ使用します。

いいえ

domain

d

サーバーに接続するときに認証先となるドメイン。

いいえ

url

組織サービスの URL。

はい

out

o

生成するコードのファイル名。

はい

language

l

コードを生成する言語。 これは、“CS” または “VB”のいずれかにすることができます。 既定値は “CS” です。

いいえ

namespace

n

生成するコードの名前空間。 既定値はグローバル名前空間です。

いいえ

username

u

認証用のサーバーに接続するときに使用するユーザー名。

いいえ

パスワード

p

認証用のサーバーに接続するときに使用するパスワード。

いいえ

servicecontextname

生成する組織サービス コンテキスト クラスの名前。 値を指定しない場合は、サービス コンテキストが作成されません。

いいえ

help

?

コマンドの使用方法に関する情報を表示します。

いいえ

nologo

実行時にメッセージを表示しません。

いいえ

generateActions

アクションの要求と応答クラスを生成します。

interactivelogin

il

trueに設定する場合、Dynamics 365 サービスにログインするダイアログが表示されます。 コマンド ラインで指定された他のすべての接続関連パラメーターは無視されます。

いいえ

connectionstring

connstr

Dynamics 365 の組織に接続するための、単一文字列として提供される情報を含みます。 コマンド ラインで指定された他のすべての接続関連パラメーターは無視されます。 詳細については、「XRM ツールの接続文字列を使用して Dynamics 365に接続する」を参照してください。

いいえ

使用例

次の例は、コマンドラインからコード生成ツールを使用する方法を、展開の種類ごとに示しています。 ユーザー名とパスワードは省略可能なパラメーターであることに注意してください。 ターゲットの Microsoft Dynamics 365 サーバー用の資格情報が Windows 資格情報保管サービスに保管されている場合は、コード生成ツールを実行するときに資格情報を指定する必要はありません。

クレーム認証 – Active Directory

次のサンプルは、Active Directory でクレーム認証を使用してコード生成ツールを実行する方法を示しています。 このサンプル サーバーでは Transport Layer Security (TLS) または Secure Sockets Layer (SSL) が使用されているので、https を使用します。

    CrmSvcUtil.exe /url:https://myport:555/MyOrg/XRMServices/2011/Organization.svc /out:GeneratedCode.cs
       /username:administrator /password:password

Microsoft Dynamics 365 (オンライン)

次のサンプルは、Microsoft Dynamics 365 (オンライン) 用のコード生成ツールを実行する方法を示しています。 最初の例は Microsoft アカウント ID プロバイダー用であり、2 つ目は Office 365 ID プロバイダー用です。

    CrmSvcUtil.exe /url:https://myorg.api.crm.dynamics.com/XRMServices/2011/Organization.svc    /out:GeneratedCode.cs /username:"myname@live.com" /password:"myp@ssword!" 
    CrmSvcUtil.exe /url:https://myorg.api.crm.dynamics.com/XRMServices/2011/Organization.svc    /out:GeneratedCode.cs /username:"myname@myorg.onmicrosoft.com" /password:"myp@ssword!" 

クレーム認証 - IFD

次のサンプルは、クレーム認証を使用してコード生成ツールを実行する方法を示しています。

    CrmSvcUtil.exe /url:https://myorg.crm.com:555/XRMServices/2011/Organization.svc     /out:GeneratedCode.cs /username:administrator /password:p@ssword! 

構成ファイルの使用

CrmSvcUtil.exe.config 構成ファイルは、CrmSvcUtil.exe ツールと同じフォルダーに存在する必要があります。 構成ファイルでは、appSettings セクションに標準のキー/値ペアを使用します。 ただし、コマンドラインから値を入力した場合は、その値が構成ファイル内の値の代わりに使用されます。 アプリケーションの構成ファイルにあるキー/値ペアのうち、想定されているパラメーターのいずれにも一致しないものは無視されます。

url パラメーターと namespace パラメーターは、構成ファイルに記述しないでください。 これらは、CrmSvcUtil.exe ツールの実行中にコマンドラインから入力する必要があります。

次のサンプルは、ショートカット キーを使用して、アプリケーション構成ファイルに出力ファイルとドメイン名のパラメーターを構成する方法を示しています。

<appSettings>    <add key="o" value="CrmProxy.cs"/>    <add key="d" value="mydomain"/></appSettings>

トレースの有効化

ツール実行中のトレースを有効にするには、次の行を構成ファイルに追加します。

<system.diagnostics> 
   <trace autoflush="false" indentsize="4"> 
      <listeners> 
         <add name="configConsoleListener" type="System.Diagnostics.ConsoleTraceListener"> 
            <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> 
         </add> 
      </listeners> 
   </trace> 
</system.diagnostics>

サポートされるトレース オプションの詳細については、「XRM ツール用トレースの構成」を参照してください。

関連項目

開発者ツール
組織のメタデータの参照
コード生成ツール用の拡張機能の作成
作成、更新、および削除の事前バインド エンティティ クラスの使用
トラブルシューティングのヒント
Microsoft Dynamics 365 Web サービスを使用した単純なプログラムの実行

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権