适用于: Power Platform、Solutions
本文提供了在目标环境中执行 升级或更新 时发生的问题的解决方法。 运行时行为不符合最新解决方案的预期。
现象
尝试升级或更新到现有解决方案时,组件运行时行为与解决方案的预期行为不一致。
此问题出现是因为解决方案组件值未在顶层更新,由于以下两个原因之一。 若要确定解决方案组件的顶层是 活动 层还是 托管层, 请查看该组件的解决方案层。 如果顶部的层状态为“活动”,则顶层为“活动”;否则为“托管”。 详细了解解决方案分层。
原因 1:顶部的非托管活动自定义
目标环境中的顶层有一个未管理的活动自定义项目。
原因 1 的解决方法
使用以下解决方法之一:
- 删除目标环境中的顶部的活动自定义 。
- 使用 “覆盖自定义项”选项再次升级该解决方案。 “ 覆盖自定义项 ”选项将传入值复制到活动层。 活动层仍然存在。
以下示例方案演示了升级后目标环境中解决方案层在顶层执行活动自定义后会发生什么情况。
原因 1 的目标中解决方案的初始状态
此处, A、 B 和 C 是解决方案 1、解决方案 2 和非托管活动层中解决方案组件的值。
订单 | 解决方案 | 发布者 | 层状态 |
---|---|---|---|
3 | 非托管层 (C) |
默认出版商 | 活跃的 |
2 | 解决方案 2 (B) |
发布者 B | |
1 | 解决方案 1 (A) |
发布者 A |
升级解决方案而无须覆盖自定义项(原因一)
导入具有新值 D 且不带覆盖自定义项的解决方案 2 后。 在将解决方案 2 从值 B 升级到 D 后,值 D 无效,因为有效的顶层仍为 C。
订单 | 解决方案 | 发布者 | 层状态 |
---|---|---|---|
3 | 非托管层 (C) |
默认出版商 | 活跃 |
2 | 解决方案 2 (D) |
发布者 B | |
1 | 解决方案 1 (A) |
发布者 A |
对原因 1 使用覆盖自定义的升级解决方案
导入具有带覆盖自定义项的新值 D的解决方案 2 后。 值 D 在通过将解决方案 2 从值 B 升级到 D 并使用 覆盖自定义项进行升级后变得有效,因为升级会将值 D 复制到活动层。
订单 | 解决方案 | 出版商 | 层状态 |
---|---|---|---|
3 | 非托管层 (D) |
默认发布者 | 活动 |
2 | 解决方案 2 (D) |
发布者 B | |
1 | 解决方案 1 (A) |
发布者 A |
原因 2:在顶部覆盖另一个托管解决方案中的层
托管解决方案的另一层是顶层。
原因 2 的解决方法
转到顶层托管层的源环境,然后执行以下操作之一:
- 在解决方案中进行更改,导出新版解决方案,然后将其再次导入目标环境。
- 从解决方案中删除组件,导出新版解决方案,然后将其作为升级解决方案导入目标环境。
以下示例场景演示了在其他托管层位于顶部进行升级后,目标中的解决方案层会发生什么情况。
原因 2 目标中解决方案的初始状态
此处, A、 B 和 C 是解决方案 1、解决方案 2 和解决方案 3 中解决方案组件的值。
订单 | 解决方案 | 发布者 |
---|---|---|
3 | 解决方案 3 (C) |
出版商 C |
2 | 解决方案 2 (B) |
出版商 B |
1 | 解决方案 1 (A) |
发布者 A |
升级解决方案而不覆盖原因 2 的自定义项
导入具有新值 D 且不带覆盖自定义项的解决方案 2 后。 升级后值 D 无效,因为有效顶层仍为 解决方案 2 中的 C 。
订单 | 解决方案 | 出版商 |
---|---|---|
3 | 解决方案 3 (C) |
发布者 C |
2 | 解决方案 2 (D) |
发布者 B |
1 | 解决方案 1 (A) |
发布者 A |
使用重写自定义项升级解决方案
导入具有带覆盖自定义项的新值 D的解决方案 2 后。 但是,升级后值 D 无效,因为 覆盖自定义 项仅将该值复制到顶层活动层。 托管解决方案 3 中的值 C 仍然是最有效层。
订单 | 解决方案 | 出版商 |
---|---|---|
3 | 解决方案 3 (C) |
发布者 C |
2 | 解决方案 2 (D) |
发布者 B |
1 | 解决方案 1 (A) |
发布者 A |
** 更新顶层管理层以匹配已升级的层级
导入具有新值 D 的解决方案 2 后。若要使值 D 成为有效的顶层,请删除顶层 C 或修改解决方案 3,使其值为 D,然后导出并导入解决方案 3。
订单 | 解决方案 | 发布者 |
---|---|---|
3 | 解决方案 3 (D) |
发布者 C |
2 | 解决方案 2 (D) |
发布者 B |
1 | 解决方案 1 (A) |
发布者 A |