在环境之间传输解决方案

已完成

使用解决方案的一项关键优势是从 Microsoft Power Platform 环境导入和导出解决方案。 本功能支持以下关键用例:

  • 将导出的解决方案导入其他环境

  • 导出解决方案以便存储在源代码管理中

  • 按需备份解决方案组件以及在不还原整个环境的情况下还原解决方案组件

您可以通过解决方案资源管理器手动导出和导入解决方案,也可以使用 Microsoft Power Platform Build Tools 自动导入和导出。

托管和非托管解决方案

解决方案可为托管或非托管。 本名称确定可对解决方案执行的操作。 对云端流和其他解决方案组件进行更改时,在开发环境中使用非托管解决方案。 部署到不属于解决方案开发环境的环境时,使用托管解决方案。 解决方案类型由导出时的选项确定并在将导出的解决方案导入其他环境时生效。

例如,常见做法是建立包含解决方案(非托管)的开发环境,您在其中构建云端流和其他解决方案组件。 然后在准备好发布到测试环境时,导出解决方案的非托管版本和托管版本。 可将非托管解决方案作为安全的工作备份副本。 您还可以使用 SolutionPackagerMicrosoft Power Platform CLI 等工具从导出的非托管解决方案中提取单个文件,然后将其签入 GitHub 或 Microsoft Azure DevOps 等源代码管理中。

此外,如果需要重新创建开发环境,可以使用非托管解决方案。 为此,请确保始终拥有导出的非托管解决方案。 导入测试环境时,将使用解决方案文件的托管版本。 测试成功后,将相同的托管版本导入生产。 要点在于解决方案组件的所有变更都仅在开发环境中完成。 要帮助强制实施本概念,您无法直接更改托管解决方案组件,这有助于防止意外更改。

导出解决方案

通过解决方案资源管理器手动导出解决方案时,系统都将给出一些选项。 第一个选项是发布所有更改检查问题

导出前选项屏幕截图。

云端流不需要发布所有更改选项,但对于其他解决方案组件,这是个不错的选择。 某些更改用户界面组件的自定义项要求在导出之前发布。

对所有解决方案组件运行分析来检查问题。 本分析与流检查器相似,但适用于解决方案中的所有组件并且发出问题警告。

第二项提示针对版本号,您可以选择托管非托管

导出本解决方案提示中的版本号和“导出为”选项屏幕截图。

无论何时导出,版本号都默认增加。 基本上,如果在同一会话中导出托管和非托管解决方案,两者将具有不同的版本号,但代表同一版本。 为了避免出现这种情况,您可以手动将两个版本调整为相同的版本。

对于导出为选项,我们建议进行两次导出,一次为托管,另一次为非托管。 确保在导出托管解决方案时导出非托管副本。

导入解决方案

要将解决方案部署到其他环境,您将导入导出的解决方案文件。 您可以导入托管或非托管解决方案文件。

导入非托管解决方案应针对开发环境。 导入完成后,解决方案组件将合并到环境中。 您将无法撤消本操作,删除解决方案将仅删除解决方案,而不删除合并到环境中的解决方案组件。 如果环境中已存在解决方案,导入将更新和覆盖现有匹配资源。 所有解决方案导入均为添加,更新导入完成后,所有不属于新版本的解决方案组件在环境中仍存在。 确保不会意外覆盖自上次导出以来的最新工作并且仅将非托管解决方案导入预期环境。

导入托管解决方案应针对非开发环境,比如测试和生产。 与非托管解决方案不同,导入托管解决方案时不会以相同的方式合并,而是创建自己的自定义层来跟踪和管理对环境所做的更改。 解决方案分层允许跟踪对托管解决方案的解决方案组件所做的更改。 如果将更新导入托管解决方案,默认行为是将导入作为升级处理。 导入更新的解决方案版本,然后删除旧版本。 删除旧版本时,将从环境中删除不再属于新版本的解决方案组件。 例如在开发中删除云端流,将较新的版本导入测试环境时,也将从测试环境中删除已删除的流。 删除托管解决方案类似于卸载,将删除所有未被其他解决方案引用的解决方案组件,包括其数据。 您应避免直接在以非托管方式部署解决方案的环境中手动更新云端流,因为此操作将创建非托管更改,阻止未来更新。 例如修复生产中的云端流,下次新版本导入部署并无问题,但不更新生产云端流。 您可以使用解决方案层管理功能识别和解决本问题。 您还可以仅在开发环境中进行更改来避免本问题。

对于任意类型的解决方案导入,都将提示您更新所有之前未建立的连接引用。

导入时设置连接的连接引用屏幕截图。

此外,如果解决方案中存在不包含值的环境变量,将提示您为此环境提供当前值。

导入解决方案环境变量屏幕截图。

解决方案导入和导出将在后台运行,您将在完成时收到通知。