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 将文件添加到新解决方案。
如果 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="{"testMessage":"Test message"}">
</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="{"testMessage":"Test message"}"
ListTemplateId="100"
WebTemplateId="GROUP#0"
Sequence="10"
HostProperties="{"preAllocatedApplicationCustomizerTopHeight":"50","preAllocatedApplicationCustomizerBottomHeight":"50"}">
</ClientSideComponentInstance>
</Elements>
当管理员将包含 ClientSideInstance.xml 文件的解决方案添加到应用程序目录时,将显示特定的警告消息,以确保自动配置的存在是已知的。
部署解决方案后,管理员可以从“租户范围扩展”列表更改部署设置。