组件库应用程序生命周期管理 (ALM)
组件库是一种特殊类型的画布应用,可以包含一个或多个画布组件。 然后,环境中的所有其他画布应用都可以使用这些库组件。 此功能使您能够跨环境中的所有应用创建可重用的共享组件,这与仅限于一个应用的应用级别组件不同。
要使用组件库中的组件,您必须首先将组件导入画布应用。 导入后,您可以将该组件添加到任意应用屏幕中。 组件库内组件定义中的任何更新都将提示您按需或在打开应用程序进行编辑时查看并合并更改。 组件库和相关应用也可使用标准 Microsoft Dataverse 解决方案移到另一个环境中。
备注
在本文中,术语“导入”是指将组件从组件库导入应用,不要与将解决方案导入 Dataverse 混淆。
将组件库中的组件导入画布应用时,该组件的定义将复制到画布应用的定义中。 导入组件定义后,就该组件定义而言,应用是“独立”应用。 应用制作者可以选择编辑该组件,并在应用内创建组件的本地实例。 目前,没有指向组件所源自的组件库的直接链接。 如果随后将画布应用迁移到不存在组件库的其他环境,则此独立特性也适用。 您可以继续在目标环境中的应用内创建导入的组件定义的实例,并且仍然可以发布和播放应用。 在这种情况下,所使用的应用不会提示或接收新的更新。
为了维护应用与组件库的关系,请确保您使用组件库对组件进行任何更改,而不是在所使用的应用中编辑组件。
画布应用和组件库解决方案支持
与其他解决方案对象依赖关系一致,如果画布应用从组件库导入画布组件,则它将依赖于该组件库。 为了将应用移动到新环境,您需要将组件库打包到同一解决方案中,或者将其安装为必备组件。 应用与组件库的依赖关系在目标环境中维护。 稍后,使用解决方案将具有更新组件的组件库导入目标环境时,现有应用将使用常规组件更新流获取新组件定义。
在解决方案中创建和导出组件库
您可以直接从解决方案内创建组件库,也可以将其添加到现有解决方案中。
在将组件库保存在 Dataverse 可用的环境中时,组件库会自动添加到默认解决方案中。 系统会为具有默认 CDS 发布者前缀的组件库生成一个唯一的逻辑名称。 此行为可以确保解决方案系统了解其状态,并且可以链接应用中使用组件库逻辑名称的依赖项。
备注
在组件库 ALM 功能推出之前创建的组件库需要进行编辑和发布,并且在为 ALM 功能启用它们之前必须明确关闭编辑器。 您可以通过默认解决方案中的状态来检查组件库 ALM 准备情况。
解决方案内的组件库还支持允许自定义托管属性,这些属性控制目标环境中组件库的行为。
如果关闭此设置,并将解决方案导出到目标环境,则将无法编辑组件库。
组件库依赖项
使用组件库中的组件的应用将被标记为依赖于解决方案基础结构。 此行为适用于在给定环境中添加到任何 Dataverse 解决方案的所有应用。 您仍然可以在解决方案之外创建应用,但这些应用不会有任何解决方案依赖项。 您可以稍后将这些应用添加到解决方案中,以使其成为解决方案 ALM 的一部分。
如果您导入的解决方案只有一个使用组件库中的组件但却不包括该组件库的应用,则您将看到以下消息:
“导入失败,因为缺少 <app name> 的依赖项”。
在这种情况下,您可以选择先安装组件库解决方案,或者将组件库与包含画布应用的解决方案捆绑在一起。 任何一个步骤都将确保应用将具有在目标环境中创建的依赖项。
当库更新并通过解决方案导入更新的组件版本时,应用将在打开应用进行编辑时收到通知并接收更新。
备注
如果组件库托管属性允许自定义已关闭,则不能在目标环境中编辑组件库。
依赖项根据应用的最新发布状态进行计算。 如果您恢复不使用库组件的旧版本应用,则将从应用和解决方案中删除依赖项。 如果将组件从组件库导入应用而不实际使用它,则也会创建依赖项,因为未使用的库组件在应用中仍然可供将来使用。
提示
如果从所使用的应用内编辑组件库的组件,则会创建本地副本。 此时,仍可以通过插入窗格使用库组件。 若要完全删除依赖项,请从插入 > 库组件 > ...(省略号)> 从应用删除中删除该组件。
最佳实践和故障排除
将库中的组件数量限制为 20 个以获得最佳性能。 提前计划和创建多个组件库,因为其中的组件数量可能会随着时间的推移而增加。 这种方法还将减少解决方案的有效负载,因为应用会在环境中移动。
从发布组件库到组件库可用于应用程序之间存在延迟,最多可能需要 5 分钟。
如果应用无法从安装了解决方案的目标环境内的库组件中接收更新,请使用以下操作进行检查:
- 在目标环境中对组件库所做的更改位于组件顶层。 随后,这些自定义项定义组件的运行时行为。 若要删除这些非托管自定义项,请参阅删除非托管层。
- 从解决方案视图中确定组件库逻辑名称。 如果库未明确添加到解决方案中,请使用默认解决方案。
- 使用文件 > 另存为 > 此计算机将使用库组件的应用下载到本地计算机。 重命名下载的文件,使其具有 .zip 扩展名,然后解压缩此包。 打开 Properties.json 文件,然后搜索关键字“LibraryDependencies”。 您应该会看到匹配的库逻辑名称。
- 如果您正在使用此解决方案,请检查画布应用是否正确将组件库标识为解决方案依赖项。 如果解决方案未正确将组件库标识为解决方案依赖项,这意味着尚未正确创建组件库链接的应用依赖项。 在这种情况下,请与解决方案提供商联系以解决问题。
- 如果您是解决方案发布商,请检查是否用组件库逻辑名称将组件库保存在解决方案中,并且此名称是否与组件库 .msapp 包中引用的名称相同。
解决方案导出始终导出最新版本的组件库。 因此,在通过解决方案导出应用之前,请务必使用最新组件版本更新它们。 此操作可确保应用具有的组件版本与最新版本组件库中可用的组件版本相同。 应用和库在第一次移动到目标环境时被认为是相互同步的;因此,在编辑应用时不会提示您提供任何可用更新。