使用代码生成工具 (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 输出文件,其中包含组织内的实体的强类型类。 这些实体包括自定义实体和属性。 此输出文件为每个实体包含一个类,在 Microsoft Visual Studio 中提供早期绑定和 IntelliSense 支持以便在您编写自定义代码时为您提供帮助。 所生成的类是分部类,可使用不同文件中的自定义业务逻辑对其进行扩展。 还可以创建此工具的扩展。 有关详细信息,请参阅创建代码生成工具扩展

该工具也可用于生成派生自 OrganizationServiceContext 类的类,以在实体数据模型中充当实体容器。 通过此服务上下文,可轻松跟踪更改和管理标识、并发性和关系。 此类还公开一个 SaveChanges 方法,以便在 Microsoft Dynamics 365 中写入插入内容、更新内容和删除记录。 有关详细信息,请参阅使用 OrganizationServiceContext 类

该代码生成工具使用若干个参数来确定所创建文件的内容。 可在运行该工具时从命令行或在 .NET 连接的应用程序配置文件中传入这些参数。

代码生成工具所创建的类设计为内置到使用 Microsoft Dynamics 365 的项目可以引用的类库中。 在使用该工具生成类文件后,应将该文件添加到 Visual Studio 项目中。 还必须添加生成的类所依赖的对若干程序集的引用。

下面列出当使用生成的代码文件时您的项目中必须引用的程序集。

  • Microsoft.Crm.Sdk.Proxy.dll

  • Microsoft.Xrm.Sdk.dll

这些程序集可以在 SDK 的 SDK\Bin 文件夹中找到。 下载 Microsoft Dynamics CRM SDK 包。

运行代码生成工具

从 SDK\Bin 文件夹运行 CrmSvcUtil.exe 工具。 如果从其他文件夹位置运行该工具,请确保 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 (online) 中从命令行运行该工具的格式。 您需要提供适合您的客户和服务器的参数值。

    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 帐户 身份提供程序对 Microsoft Dynamics 365 (online) 运行该工具时,不再需要从命令行中提供 deviceiddevicepassword 参数。 该工具将自动注册您的设备。 但是,您可以通过先编译并运行如下所述的 DeviceRegistration 代码示例来手动注册设备并获取这些参数的值。

生成您个人的设备 ID 和密码

  1. 打开并生成 DeviceRegistration 项目:SDK\Tools\DeviceRegistration\DeviceRegistration.csproj。

  2. 从命令行运行可执行文件。 若要注册设备,请将 /operation 参数设置为 Register

        C:\deviceregistration.exe /operation:Register
    
  3. 复制显示的设备 ID 和密码值,并在运行 CrmSvcUtil 工具时将这些值用作 deviceiddevicepassword 参数值。

参数

下表列出代码生成工具参数并简要介绍了其用法。

参数

快捷方式

说明

必填

deviceid

di

在连接到联机服务器进行身份验证时使用的设备 ID。 仅当未在磁盘上的 %USERPROFILE%\LiveDeviceID 文件夹中存储设备 ID 时需要此参数。 只用于 Microsoft 帐户 身份提供程序。

devicepassword

dp

在连接到联机服务器进行身份验证时使用的设备密码。 仅当未在磁盘上的 %USERPROFILE%\LiveDeviceID 文件夹中存储设备密码时需要此参数。 只用于 Microsoft 帐户 身份提供程序。

domain

d

要在您连接到服务器时进行身份验证的域。

False

url

组织服务的 URL。

True

out

o

所生成代码的文件名。

True

language

l

生成代码时将使用的语言。 可以是 “CS” 或 “VB”。 默认值为“CS”。

False

namespace

n

用于所生成代码的命名空间。 默认为全局命名空间。

False

username

u

连接到服务器进行身份验证时使用的用户名。

False

密码

p

连接到服务器进行身份验证时使用的密码。

False

servicecontextname

生成的组织服务上下文类的名称。 如果不提供值,则不创建服务上下文。

False

help

?

显示用法信息。

nologo

运行时不显示横幅。

generateActions

生成操作的请求和响应类。

interactivelogin

il

如果设置为 true, 则会显示登录 Dynamics 365 服务的对话框。 所有其他在命令行上指定的连接相关参数均被忽略。

connectionstring

connstr

包含信息,以单个字符串的形式提供,用于连接到 Dynamics 365 组织。 所有其他在命令行上指定的连接相关参数均被忽略。 有关详细信息,请参阅使用 XRM 工具中的连接字符串连接至 Dynamics 365

用法示例

以下示例演示如何从命令行对每种部署类型使用代码生成工具。 请注意,用户名和密码是可选参数。 如果目标 Microsoft Dynamics 365 服务器的凭据存储在 Windows 凭据保管库中,则不必提供这些凭据即可运行代码生成工具。

声明身份验证 – Active Directory

以下示例演示如何使用 Active Directory 中的声明身份验证来运行代码生成工具。 请注意,由于此示例服务器使用传输层安全 (TLS) 或安全套接字层 (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 (online) 运行代码生成工具。 第一个示例用于 Microsoft 帐户 身份提供程序,而另一个用于 Office 365 身份提供程序。

    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 部分使用标准的键/值对。 但是,如果您在命令行处输入一个值,则将使用该值而非配置文件中的某个值。 在应用程序配置文件中找到的、与任一预期参数不符的任何键/值对都将被忽略。

不要在配置文件中包含 urlnamespace 参数。 这些参数必须在运行 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。 保留所有权利。 版权