应用目录和 ALM API

已完成

在本单元中,你将了解 SharePoint 中的不同应用程序目录,以及如何使用应用程序生命周期管理 API 以编程方式部署 SharePoint 应用。

租户范围的应用程序目录

租户范围的应用程序目录最初是在 SharePoint Server 2013 版本中引入 SharePoint 的。 可在以后的所有本地 SharePoint Server 版本中和 SharePoint Online 中查看。

租户应用程序目录由 SharePoint 租户管理员管理。 部署到租户应用程序目录的所有 SharePoint 包都可用于整个租户的所有网站集。

从 SharePoint Server 2019 和 SharePoint Online 开始,在将 SharePoint 包部署到租户应用程序目录时,可以选择将 Web 部件安装到租户中的所有网站集。 若要在部署包时使用此选项,开发人员必须在 ./config/package-solution.json 文件中启用它。 此选项通过在部署应用后不必在每个网站集中安装应用来节省管理员和网站集所有者的时间。 此外,它将自动在部署包后创建的所有新网站集中安装应用。

网站集范围的应用程序目录

网站集应用程序目录仅在 SharePoint Online 中可用。 网站集应用程序目录的工作方式与租户范围的应用程序目录类似,但部署到它的 SharePoint 包仅对该网站集可用。

当某个组件用于网站集的子集,而不是整个租户时,网站集应用程序目录是一个不错的选择。

网站集应用程序目录不会自动在网站集中预配,也不能使用 SharePoint 管理中心进行创建。 必须由租户管理员使用 SharePoint REST API、PowerShell 或 CLI for Microsoft 365 进行预配。

创建网站集应用程序目录

网站集应用程序目录不会自动创建,因为默认情况下,Microsoft希望确保内容的安全。

当有人将 SharePoint 包添加到网站并从中安装项目时,他们可以将 JavaScript 文件添加到 SharePoint 网站。 这会将被允许将 JavaScript 文件添加到网站的相关人员的职责,委派给网站集所有者。

这些脚本文件在 SharePoint 页面上运行后,它们就会在当前用户的上下文中运行。 如果该用户有权访问敏感信息,则脚本可以使用 SharePoint REST API 将文件发送到另一个位置,而用户不知道。 安装应用的人员可能不会意识到这种情况会发生。 使用网站集应用程序目录时,租户管理员会将此责任委托给网站集所有者。 因此,Microsoft要求租户管理员按网站集“选择加入”网站集应用程序目录。

创建网站集应用程序目录的唯一方法都是通过 SharePoint REST API。 可以通过代码或使用租户管理员可用的管理命令行工具之一来执行此操作。

网站集应用程序目录是网站集中的一个特殊文档库,可从网站内容页面访问。

使用 Microsoft Office SharePoint Online 创建网站集应用程序目录

Microsoft Office SharePoint Online 包含可用于在网站集中创建和删除应用程序目录的 cmdlet。 首先,通过登录租户管理中心连接到 SharePoint Online 租户,然后使用 Add-SPOSiteCollectionAppCatalog cmdlet 将网站集应用程序目录添加到指定的网站集。

PS> Connect-SPOService -Url https://contoso-admin.sharepoint.com
PS> Add-SPOSiteCollectionAppCatalog -Site https://contoso.sharepoint.com/sites/test-site

使用适用于 Microsoft 365 的 CLI 创建网站集应用目录

CLI for Microsoft 365 包含可用于在网站集中创建和删除应用程序目录的命令。 首先,通过登录租户管理中心连接到 SharePoint Online 租户,然后使用 site appcatalog 命令将网站集应用程序目录添加到指定的网站集:

$ m365 login
$ m365 spo site appcatalog add --url https://contoso.sharepoint/sites/test-site

删除网站集应用程序目录

删除网站集应用程序目录实际上不会删除库,而只会禁止将 SharePoint 包部署到网站集。 删除网站集应用程序目录后,未来上传到库的任何包将被视为文档库中的文件。

使用以下命令使用 SharePoint Online PowerShell 删除网站集应用程序目录:

PS> Connect-SPOService -Url https://contoso-admin.sharepoint.com
PS> Remove-SPOSiteCollectionAppCatalog -Site https://contoso.sharepoint.com/sites/test-site

使用以下命令使用 CLI for Microsoft 365 删除网站集应用程序目录:

$ m365 login
$ m365 spo site appcatalog remove --url https://contoso.sharepoint/sites/test-site

应用程序生命周期管理 (ALM) REST API

SharePoint REST API 包含用于管理 SharePoint 包和应用的完整应用程序生命周期的终结点和方法。 称为“应用程序生命周期管理”或“ALM”。 这些 ALM API 仅在 SharePoint Online 中提供。

SharePoint ALM API 使开发人员能够以编程方式控制程序包生命周期的所有阶段。 这些 API 允许在持续集成和持续部署方案 (CI/CD) 中实现复杂的自动化,包括控制大量部署。

ALM API 可用于以下应用场景:

  • 将 SharePoint Framework 解决方案和 SharePoint 外接程序添加到应用程序目录/从应用程序目录中删除SharePoint Framework 解决方案和 SharePoint
  • 启用/禁用在网站集中安装的 SharePoint 框架解决方案和 SharePoint 外接程序
  • 安装/卸载网站集中的 SharePoint 框架解决方案和 SharePoint 外接程序
  • 升级网站集中的 SharePoint 框架解决方案和 SharePoint 外接程序
  • 列出/获取应用程序目录中的一个 SharePoint 框架解决方案和 SharePoint 外接程序

这些 ALM API 可用作 REST API 终结点和工具,例如 PnP PowerShell、适用于 Microsoft 365 的 CLI 和 SharePoint Client-Side 对象模型 (CSOM) 。

摘要

在本单元中,你学习了 SharePoint 中的不同应用程序目录,以及如何使用应用程序生命周期管理 API 以编程方式部署 SharePoint 应用。