组件库应用程序生命周期管理 (ALM)

组件库是一种特殊类型的画布应用,可以包含一个或多个画布组件。 然后,环境中所有其他画布应用都可以使用这些库组件。 此功能使你能够在环境中的所有应用中创建可重用的共享组件,这与限制为一个应用 的应用级组件 不同。

若要使用组件库中的组件,必须先将组件导入画布应用。 导入后,即可将组件添加到任何应用屏幕。 组件库内组件定义中的任何更新都将提示您按需或在打开应用程序进行编辑时查看并合并更改。 还可以使用标准 Microsoft Dataverse 解决方案将组件库和依赖应用移动到另一个环境。

注释

在本文中,术语“导入”是指将组件从组件库导入到应用,不应与将解决方案导入 Dataverse 混淆。

将组件库中的组件导入画布应用时,该组件的定义将复制到画布应用的定义中。 导入组件定义后,应用就该组件定义而言是“自包含的”。 应用创建者可以选择 编辑组件,并在应用中创建组件的本地实例。 此时,没有指向组件来源的组件库的直接链接。 如果画布应用随后迁移到组件库不存在的其他环境,则此自我包含特征也适用。 可以继续在目标环境中的应用中创建导入组件定义的实例,并且应用仍可发布和播放。 在这种情况下,不会在消耗应用中提示或接收任何新更新。

为了维护从应用到组件库的关系,请确保使用组件库对组件进行任何更改,而不是在正在使用的应用中编辑组件。

画布应用和组件库解决方案支持

与其他解决方案对象依赖项一致,如果画布应用从组件库导入画布组件,它将依赖于该组件库。 若要将应用移动到新环境,需要将组件库打包到同一解决方案中,或将其安装为先决条件。 在目标环境中管理应用对组件库的依赖关系。 稍后,使用解决方案将具有更新组件的组件库导入到目标环境中时,现有应用将使用常规 组件更新流获取新的组件定义。

在解决方案中创建和导出组件库

可以直接在解决方案中创建组件库,也可以将其添加到现有解决方案。

将现有组件库添加到解决方案或新组件库。

将组件库保存在 Dataverse 可用的环境中时,组件库会自动添加到默认解决方案。 为具有 默认 CDS 发布服务器 前缀的组件库生成唯一的逻辑名称。 此行为旨在确保解决方案系统能够知晓其存在,并能够将依赖关系与使用该组件库逻辑名称的应用程序链接起来。

注释

在组件库 ALM 功能推出之前创建的组件库需依次进行编辑、发布,并显式关闭编辑器,然后才能启用其 ALM 功能。 可以在默认解决方案中查看组件库 ALM 就绪情况。

检查默认解决方案中的组件库状态。

解决方案中的组件库还支持 允许自定义 托管属性,这些属性控制目标环境中的组件库的行为。

允许自定义组件库的托管属性。

如果关闭此设置,并将解决方案导出到目标环境,则无法编辑组件库。

无法编辑不允许自定义的组件库。

组件库依赖项

使用组件库中的组件的应用将标记为依赖于解决方案基础结构。 此行为适用于添加到给定环境中任何 Dataverse 解决方案的所有应用。 你仍然可以在解决方案之外创建应用,但这些应用没有任何解决方案依赖项。 稍后可以将这些应用添加到解决方案中,使之成为解决方案 ALM 的一部分。

此动画显示解决方案中的画布应用,该应用使用同一解决方案内组件库中的组件以及两者的依赖项。

如果你导入的解决方案中只有一款应用使用了组件库中的组件,但不包括该组件库,你将看到以下消息:

“由于应用名称<缺少依赖项>,导入失败”。

在这种情况下,可以选择先安装组件库解决方案,或将组件库与包含画布应用的解决方案捆绑在一起。 上述任一步骤都可确保应用在目标环境中创建依赖项。

更新库并通过解决方案导入较新的组件版本时,应用将收到通知,并在 打开应用进行编辑时接收更新。

注释

如果组件库托管属性“ 允许自定义 ”处于关闭状态,则无法在目标环境中编辑组件库。

依赖项是根据应用的最新发布状态计算的。 如果还原未使用库组件的旧版应用,则会从应用和解决方案中删除依赖项。 将组件从组件库导入应用而不实际使用它也会创建依赖项,因为未使用的库组件在应用中仍可供将来使用。

小窍门

从使用应用内的组件库编辑组件会创建本地副本。 此时,库组件仍可通过 “插入 ”窗格使用。 若要完全删除依赖项,请从 插入>库组件中删除组件>... (省略号) >从应用中删除

最佳做法和故障排除

  • 将库中的组件数限制为 20,以获得最佳性能。 提前规划和创建多个组件库,因为其中的组件数量可能会随着时间推移而增长。 此方法还将减少解决方案有效负载,因为应用在环境中移动。

  • 从组件库发布到应用程序可用时延迟,最长可能需要 5 分钟的时间。

  • 如果应用无法从安装解决方案的目标环境中的库组件接收更新,请使用以下作进行检查:

    • 对目标环境中的组件库所做的更改驻留在组件的顶层。 随后,这些自定义项定义组件的运行时行为。 若要删除这些非托管自定义项,请参阅 “删除非托管层”。
    • 从解决方案视图中确定组件库逻辑名称。 如果未将库显式添加到解决方案,请使用默认解决方案。
    • 使用库组件通过文件>另存为>本机,将应用下载至本地计算机。 将下载的文件重命名为具有 .zip 扩展名,然后解压缩包。 打开 Properties.json 文件,然后搜索关键字“LibraryDependencies”。 应会看到匹配的库逻辑名称。
    • 如果使用解决方案,请检查画布应用是否已正确将组件库标识为 解决方案依赖项。 如果解决方案未正确将组件库标识为解决方案依赖项,这意味着尚未正确创建组件库链接的应用依赖项。 在这种情况下,请与解决方案提供商联系以解决问题。
    • 如果你是解决方案发布者,请检查组件库是否使用解决方案中的库逻辑名称保存,并且它与组件库 .msapp 包中引用的库相同。
  • 解决方案导出始终导出最新版本的组件库。 因此,在通过解决方案导出应用之前,请始终使用最新的组件版本更新应用。 此操作可确保应用具有与组件库中的最新版本相同的组件版本。 首次移动到目标环境时,应用和库被视为彼此同步;因此,编辑应用时,系统不会提示你提供任何更新。

另请参阅