使用 Package Deployer 和 Windows PowerShell 部署程序包

Microsoft Dynamics CRM Package Deployer 使管理员能够将包部署到环境中。

备注

Package Deployer 也支持 Dynamics 365 Customer Engagement (on-premises) 组织。

一个“数据包”可以包括以下内容:

  • 一个或多个 Dataverse 解决方案文件。

  • 平面文件或从配置迁移工具中导出的数据文件。 有关配置迁移工具的详细信息,请参阅管理配置数据

  • 在将数据包部署到环境期间或在部署好之后可运行的自定义代码。

  • 针对在程序包部署流程开始和结束时显示的数据包的 HTML 内容。 这将有助于提供在数据包中部署的解决方案和文件的说明。

    开发人员可以通过使用 Visual Studio 里的程序包部署模板创建程序包。 详细信息:为 Package Deployer 创建包

    包创建后,您可以通过运行 CRM Package Deployer 或使用该工具的 Windows PowerShell cmdlet 部署包。

重要提示

在生产组织中导入并运行程序包之前,请在该生产组织的非生产镜像中测试该程序包。

部署程序包之前,请始终先备份生产组织。


使用 Package Deployer 工具部署程序包

可以使用 Package Deployer 工具 (packagedeployer.exe) 以下面的方式部署程序包。

使用 CRM Package Deployer 工具部署程序包

通过命令行使用 CRM Package Deployer 工具

使用 Package Deployer 工具部署程序包

Package Deployer 工具一次只能处理一个程序包。 但是,此工具可使用户能在 Package Deployer 工具目录中的多个可用程序包中选择程序包并进行部署。 此工具中的某些屏幕和操作基于包定义而不同。 您无需安装 Package Deployer 工具。 只需下载并运行它。

  1. 获取要部署的程序包。 包就是当您在 Visual Studio 中构建包项目时,在 Visual Studio 项目文件夹 (<Project>\Bin\Debug) 中创建的文件和文件夹的集合。 从您的项目调试文件夹复制以下项目:

    • <PackageName> 文件夹:此文件夹包含解决方案、导入配置和您的包的内容。

    • <PackageName>.dll:程序集包含您的包的代码。 默认情况下,集合的名称与您的 Visual Studio 项目名称相同。

      有关使用 Visual Studio 创建程序包的详细信息,请参阅为 Package Deployer 工具创建程序包

      对于本主题,不妨假定,将程序包文件夹和程序集从 Visual Studio 项目调试文件夹 (<Project>\Bin\Debug) 复制到 c:\DeployPackage 文件夹。

  2. 获得 Package Deployer 工具。 Package Deployer 工具可用作 NuGet 包。 要使用 Package Deployer,您必须使用 nuget.exe 下载文件并将其提取到您的本地计算机。

    https://www.nuget.org/downloads 下载 nuget.exe,然后将其保存到您的计算机,例如目录 d:\。 然后,在命令提示符处运行以下命令以将程序包内容提取到计算机上的某个文件夹,例如 PD
    d:\nuget install Microsoft.CrmSdk.XrmTooling.PackageDeployment.Wpf -Version [VERSION] -O d:\PD

    在提取 Package Deployer 工具后,浏览到 [ExtractedLocation]\tools 文件夹以查找 PackageDeployer.exe 文件。

  3. 将程序包文件夹和程序集从 c:\DeployPackage 复制到 [ExtractedLocation]\tools 文件夹。

  4. 复制文件后,通过双击 [ExtractedLocation]\tools 文件夹中的 PackageDeployer.exe 文件,运行该工具。

  5. 单击工具主屏幕上的继续

  6. 连接至 Microsoft Dynamics 365 for Customer Engagement 屏幕上,提供验证细节以连接至 Dynamics 365 server,在此您可以部署包。 如果您有多个组织,并且想要选择您要部署程序包的组织,请选中始终显示可用组织列表复选框。 单击登录

  7. 如果在您的 Dynamics 365 server 上有多个组织,则选择一个 Dynamics 365 应用组织来连接。

  8. 选择要部署的包,然后单击下一步

    在 Package Deployer 工具中选择包。

  9. 请按照后续屏幕上的说明进行操作以完成程序包部署。

    屏幕会根据您选择部署的程序包的定义进行显示。 有关使用 Package Deployer 工具进行的端到端包部署,请参阅部署 Unified Service Desk 包的主题:使用 Package Deployer 将 Unified Service Desk 应用程序部署到 CRM Server

通过命令行使用 Package Deployer 工具

系统管理员和定制员可以通过命令行将区域语言代码之类参数传递到 packagedeployer.exe。 这些参数只能通过在命令行中运行 Package Deployer 工具来配置。

备注

Dynamics CRM Online 2016 更新 0.1 首先引入了此功能。

可用参数见下表。

参数 说明 默认值
RuntimePackageSettings 指示 packagedeployer.exe 接受命令行参数(如 LCID 和 SkipChecks)。 不适用
LCID=localeID 从程序包中的可用区域设置 ID 指定区域设置 ID,如 1033 表示美国英语,1036 表示法国法语。 如果不指定,将使用默认语言。 使用默认语言
SkipChecks=true/false 仅当目标环境中不包含任何其他解决方案或自定义项时,才使用此参数。 如果设置为 true,导入解决方案时将绕过某些安全检查,这样可以改善导入的性能。 错误

以下示例指示 CRM Package Deployer 绕过某些安全检查并将语言作为波兰语导入。

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

备注

在命令行中使用多个参数运行 packagedeployer.exe 时,请使用管道字符 | 分隔参数。

有关可传递到 packagedeployer.exe 的参数或值的详细信息,请参阅为 CRM Package Deployer 创建程序包

使用 Windows PowerShell 部署程序包

Package Deployer 工具还提供 Windows PowerShell 支持部署包。 详细信息:开始使用包部署模块

使用日志文件解决程序包部署问题

Package Deployer 工具提供记录支持,用来获取有关使用工具和部署程序包登录 Microsoft Dynamics 365 for Customer Engagement 实例时所发生错误的详细信息。 默认情况下,此工具可生成三个日志文件,在您运行此工具的计算机上的以下路径下提供:c:\Users\<UserName>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>。 若要指定其他文件夹,请使用 -LogWriteDirectory PowerShell cmdlet 参数。 详细信息:使用 cmdlet 检索包

  • Login_ErrorLog.log:提供有关使用此工具登录 Dynamics 365 实例时所产生问题的信息。 在登录时,如果存在任何问题,工具的登录屏幕上会出现一条消息,当中含有一个指向此日志文件的链接。 此消息说明在处理登录请求时出现错误,用户也可以查看该错误日志。 您可以单击消息中的链接来查看该日志文件。 初次遇到该工具中的任何登陆问题,创建日志文件。 之后,每当发生登录问题时,日志文件都将被用于记录日志信息。

  • PackageDeployer.log:提供在部署包期间在工具中执行的每个任务的详细信息。 您可以单击屏幕下方的查看日志文件链接,通过该工具查看日志文件。

  • ComplexImportDetail.log:提供有关使用此工具将数据导入最后一次的部署中的详细信息。 每次使用此工具部署程序包时,都会将日志文件中现有的详细信息移至同一目录中称作 ComplexImportDetail._old.log 的文件中,而 ComplexImportDetail.log 文件则显示有关使用工具执行最后一次导入的信息。

部署程序包的最佳做法

在部署包时,Dynamics 365 管理员必须:

  • 坚持使用已签名包的程序集,以便跟踪程序集回到其源。

  • 在生产服务器上运行数据包之前,在预生产实例(最好是生产实例的镜像)上对其进行测试。

  • 在部署程序包之前对生产实例进行备份。

另请参阅

为 CRM Package Deployer 创建包