SharePoint 框架扩展的租户范围部署

支持应用程序自定义程序及列表视图命令集的 SharePoint Framework (SP <0> <3>) 扩展的租户宽部署选项。 它为租户应用程序目录管理员提供了一个简单的选项,用于对在租户中默认激活的扩展或基于网站中使用的 Web/列表模板的扩展进行管理。

注意

无论在创建内容网站时使用的实际网站模板如何,SharePoint 框架扩展都支持新式体验。

当开发人员使用标准 SharePoint 框架 Yeoman 程序包创建新的 SharePoint 框架扩展解决方案时,解决方案包中包含自动化功能,可激活跨租户的扩展。

警告

从 SharePoint 框架 v1.6 开始,如果你选择使用租户范围部署选项,默认基架将自动在 SharePoint 解决方案中创建示例文件以激活跨租户的扩展。

需要将 SharePoint 框架解决方案配置为使用租户范围部署选项,这样才能使用租户范围部署功能自动激活跨租户的扩展。 这意味着, skipFeatureDeployment 包解决方案.json 中的 属性需要设置为 true

从应用程序目录网站集控制租户范围部署

应用程序目录网站集用于将 SharePoint 加载项和 SharePoint 框架组件部署到租户。 此网站集由租户管理员创建,用于管理在实际内容网站集中为最终用户提供的自定义项。

应用程序目录网站集包含租户范围扩展列表,该列表可用于管理租户中的 SharePoint 框架扩展激活。 可以从应用程序目录网站的“网站内容”页面访问此列表。

通过向租户范围扩展列表添加条目,可以在租户级别激活特定的 SharePoint 框架扩展。 每个条目都可以定位到特定的 Web 模板或列表类型,具体取决于功能要求。

当最终用户访问内容网站集中的页面时,将在运行时解析这些列表的特定配置。 这意味着应用于此列表的更改可用于租户中的现有网站和新网站。

SharePoint 框架解决方案可包含自动化功能,当添加解决方案时,该功能会自动将条目添加到“租户范围扩展”列表

重要

将第一个条目添加到特定租户的租户范围扩展列表后,最多需要 20 分钟才能启用该功能。

租户范围部署列表说明

租户中必须存在组件 ID 才能为其添加条目。

Column 类型 说明
Title String 条目的标题。 可以是用于注册的描述性条目。
组件 ID Guid 组件的清单 ID。 必须是 GUID 格式,并且组件必须存在于应用程序目录中。
组件属性 String 可选组件属性。
Web 模板 String 可用于仅将扩展定位到特定 Web 模板。 查看下表中的可能值。
列表模板 int 列表类型为数字。 查看下表中的可能值。
位置 String 条目的位置。 应用程序定制器和列表视图命令集具有不同的支持位置。
序列 int 条目的呈现顺序。
主机属性 字符串 其他服务器端配置,如占位符的预分配高度。
Disabled 布尔值 启用还是禁用条目。

对于“Web 模板”列,技术上支持任何 Web 模板定义。 下表定义了最常用的模板。

模板 Web 模板 ID
组关联的团队网站 GROUP#0
通信网站 SITEPAGEPUBLISHING#0
不包含组的新式团队网站 STS#3
经典团队网站 STS#0
经典发布网站 BLANKINTERNET#0

对于“列表模板”列,技术上支持任何列表 ID,但只有经典列表类型的子集才支持新式体验。

列表 列表 ID
自定义列表 100
文档库 101

支持的位置值如下所示。 以下是特定于组件类型的值。

组件类型 说明
ClientSideExtension.ApplicationCustomizer 应用程序定制器 应用程序定制器所必需的。
ClientSideExtension.ListViewCommandSet.ContextMenu 列表视图命令集 在“上下文菜单”中为列表中的项目显示“列表视图”按钮。
ClientSideExtension.ListViewCommandSet.CommandBar 列表视图命令集 在列表的“命令栏”中显示“列表视图”按钮。
ClientSideExtension.ListViewCommandSet 列表视图命令集 在上下文菜单和命令栏中显示“列表视图”按钮。

注意

从技术上讲,此列表定义了动态条目,当呈现网站中的页面时,这些条目将自动添加到 Web 或 List UserCustomAction 集合中。 列表信息将缓存,并且其内容输出将作为页面的一部分在运行时呈现。

从解决方案包自动执行租户范围部署

当所选初始组件类型为扩展名时,SharePoint Framework ./sharepoint/assets/ClientSideInstance.xml 将文件添加到新解决方案。

SharePoint 客户端解决方案项目

如果 skipFeatureDeployment 属性在 package-solution.json 文件中设置为 true,则应用目录的解决方案激活中将考虑 ClientSideInstance.xml

默认情况下,此文件包含以下结构。 ClientSideComponentInstance 元素指示 SharePoint 在将解决方案包添加到应用程序目录时自动将条目添加到“租户范围部署”列表。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ClientSideComponentInstance
      Title="MyAppCust"
      Location="ClientSideExtension.ApplicationCustomizer"
      ComponentId="917a86f2-15c1-403e-bbe1-59c6bd50d1e1"
      Properties="{&quot;testMessage&quot;:&quot;Test message&quot;}">
  </ClientSideComponentInstance>
</Elements>

如果选择 SharePoint Online 仅 (最新) 作为创建SharePoint 框架解决方案时选择的目标环境,则 package-solution.json 中也会引用ClientSideInstance.xml文件,以便在打包解决方案时将其包含在 *.sppkg 文件中。

重要

如果选择其他目标环境,而向项目添加了 ClientSideInstance.xml 文件,该文件不包含在 包解决方案.json 文件中。 虽然 SharePoint Server 2019 (包括 SharePoint Framework v1.4 的,请参阅 支持的功能 了解详细信息) 支持租户范围的部署,但不支持租户范围的部署(在 SharePoint Framework 1.6 中添加的,请参阅 租户范围内部署扩展 了解详细信息)。

如果在 package-solution.json 中引用此文件,则将生成的 *.sppkg 文件上传到SharePoint Server 2019租户应用目录将引发异常。

注意

如果不希望此文件出现在 *.sppkg 文件中,可以通过更新 package-solution.json 文件轻松将其从打包过程中删除。

ClientSideComponentInstance 元素支持以下属性。

属性 强制 说明
Title 条目的标题。 可以是用于注册的描述性条目。
Location 扩展注册的位置条目
ComponentId 组件的清单 ID
Properties 组件的可选属性。 请注意,这是 xml 级别的强制属性,如果不需要任何属性,可以将其设置为空字符串。 此外还需要对值进行正确编码,以便可以以 xml 格式提供属性值。
ListTemplateId 应该为其激活扩展的可选列表模板类型 ID
WebTemplateId 可选 Web 模板 ID,用于定义应激活扩展的网站类型
Sequence 扩展的可选激活顺序。 如果在同一范围内激活多个扩展,则使用它。
HostProperties 可选服务器端配置,如定义占位符的预分配高度。

以下 xml 定义显示了可选值如何用作注册的一部分。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ClientSideComponentInstance
      Title="MyAppCust"
      Location="ClientSideExtension.ApplicationCustomizer"
      ComponentId="917a86f2-15c1-403e-bbe1-59c6bd50d1e1"
      Properties="{&quot;testMessage&quot;:&quot;Test message&quot;}"
      ListTemplateId="100"
      WebTemplateId="GROUP#0"
      Sequence="10"
      HostProperties="{&quot;preAllocatedApplicationCustomizerTopHeight&quot;:&quot;50&quot;,&quot;preAllocatedApplicationCustomizerBottomHeight&quot;:&quot;50&quot;}">
  </ClientSideComponentInstance>
</Elements>

当管理员将包含 ClientSideInstance.xml 文件的解决方案添加到应用程序目录时,将显示特定的警告消息,以确保自动配置的存在是已知的。

部署到租户应用程序目录的信任 SharePoint Framework 包

部署解决方案后,管理员可以从“租户范围扩展”列表更改部署设置。