插件和自定义工作流活动是您开发的自定义代码,用于扩展 Dynamics 365 Customer Engagement (on-premises) 的现有功能。 必须先向服务器注册插件或自定义工作流活动,然后才能使用该活动。 插件和自定义工作流活动注册工具可供下载。
有关插件和自定义工作流程序集注册的一般信息,请参阅 Dataverse 主题 注册插件 和 注册程序集。 以下信息特定于本地插件开发。
虽然本主题主要关注插件,但大多数信息也适用于自定义工作流活动。 两者之间的一个区别是,对于自定义工作流活动程序集,您只需注册程序集。 对于插件,注册插件程序集及每个插件的一个或多个步骤。 有关自定义工作流活动的更多信息,请参见自定义工作流活动(工作流组合件)。
重要
请勿注册任何插件或自定义工作流活动,除非它是从可靠且受信任的来源获取的。
插件存储
对于内部部署,未在沙盒中注册的插件可以存储在 Dynamics 365 Server 的数据库或 磁盘 文件系统中。 我们强烈建议您将生产就绪插件存储在 Dynamics 365 Customer Engagement (on-premises) 数据库中,而不是存储在磁盘上。 存储在数据库中的插件会自动分布在数据中心群集中的多个 Dynamics 365 Server 之间。 插件的磁盘存储对于使用 Visual Studio 调试插件非常有用。 但是,您可以调试存储在数据库中的插件。 有关详细信息,请参阅 调试插件。
在沙盒中注册的插件必须存储在数据库中,这一点与 Dynamics 365 Customer Engagement 的部署方式(无论是本地、IFD 还是在线)无关。
部署
对于本地或面向 Internet 的 (IFD) Dynamics 365 Customer Engagement (on-premises) 安装,当您将插件从另一台计算机部署到 Dynamics 365 Server 磁盘(磁盘部署)时,必须在注册之前手动将插件程序集复制到服务器。 必须将程序集部署到 <installdir>
要执行插件的每台服务器上的 \Program Files\Microsoft CRM\server\bin\assembly 文件夹中。
插件注册应在将程序集复制到服务器上的 ...\bin\assembly 文件夹后完成,以防止系统用户在 Dynamics 365 Customer Engagement(on-premises)中引发事件时,服务器上尚不存在已注册的插件程序集。 对于服务器数据库部署,在插件注册期间会自动复制插件程序集,因此早期的情况不再是问题。
根据插件的设计,插件可能需要运行其他引用的程序集。 无论将插件部署到数据库还是磁盘,如果插件需要运行其他程序集,则必须将这些程序集的副本放在要执行插件的每台服务器上的全局程序集缓存中。
将插件从开发环境移动到暂存服务器或生产服务器
- 在开发计算机上,生成插件代码。 不要包含调试信息。 优化插件的性能。
- 在 Dynamics 365 Server 数据库中注册插件。
- 使用 Dynamics 365 Customer Engagement (on-premises) Web 应用程序,创建解决方案或使用现有解决方案,然后将插件添加到该解决方案中。
- 将任何其他所需组件添加到解决方案后,导出解决方案。
- 将解决方案导入到暂存服务器或生产服务器上。
安全限制
存在一个安全限制,仅允许特权用户注册插件。对于未在沙箱(隔离)中注册的插件,用于注册插件的系统用户帐户必须存在于 Deployment Manager 的 Deployment Administrators 组中。 只有系统管理员用户帐户或 Deployment Administrators 组中包含的任何用户帐户才能运行 Deployment Manager。
重要
对于非隔离的插件,如果未能将注册用户帐户包含在 Deployment Administrators 组中,将导致在插件注册期间引发异常。 异常描述为“权限不足以完成 SDK 实体的创建操作。”
对于在 Sandbox (隔离模式) 中注册的插件,用于注册插件的系统用户帐户必须具有 System Administrator 角色。 成为Deployment Administrators组的成员身份不是必需的。
另请参阅
插件开发
调试插件
使用 Dynamics 365 Customer Engagement (on-premises) 解决方案打包和分发扩展