SharePoint 外接程序模型中的功能装订
当预配 SharePoint 网站时,在新 SharePoint 外接程序模型中运行代码和部署项目的方法与使用完全信任代码不同。 在典型完全信任代码 (FTC)/场解决方案的场景中,现有的网站定义已使用装订功能进行了修改。 功能用于打包和部署项目、配置以及与 SharePoint 网站相关的品牌资产,而且功能已装订到网站定义中。 然后装订的功能在预配网站时是自动安装和激活的。
在 SharePoint 外接程序模型方案中,你可以装订功能、装订外接程序或使用 SharePoint 客户端对象模型 (CSOM) 创建和配置网站集以及子网站,然后向其部署项目、配置和品牌资产。 此模式通常称为 远程预配模式。
高级别准则
作为经验法则,我们希望提供以下高级别准则,以创建并配置网站集和子网站,然后向其部署项目、配置和品牌资产。
- 当你将功能装订到网站集以及使用沙盒解决方案部署网站定义和装订的功能时,你仍然可以使用的唯一方法是功能装订。
- 你可以结合使用外接程序装订模型与部署了外接程序的租户来实现类似于功能装订的功能。
- 你可以使用远程预配模式实现类似于功能装订的功能,方法是通过远程 API 激活现有网站定义顶部附加功能。
选择创建和配置网站集和子网站,然后向其部署项目、配置和品牌资产
你可以选择创建和配置网站集和子网站,然后向其部署项目、配置和品牌资产。
- 装订功能
- 装订外接程序
- 使用远程预配模式
装订功能
在此模式中,你可以将功能装订到网站定义。
- 此模式仅在网站集级别可用。
- 不可能将功能装订到子网站。
- 这不是最佳的或推荐的方法,因为它使用不建议使用的沙盒解决方案,而且不会建立完善的升级设置。
何时适合?
当你正在本地 SharePoint 环境中迁移旧代码而没时间对其进行正确的重写时。
开始使用
下文介绍了如何将功能装订到网站定义。
装订外接程序
在此模式中,可以将存储在应用程序目录中的加载项部署到特定的网站集、托管的路径和网站模板。
- 有关外接程序装订模型的详细信息,请参阅 SharePoint 2013 App Deployment through 'App Stapling'(通过“应用装订”实现 SharePoint 2013 应用部署)(MSDN 博客文章 - Richard DiZerega)。
- 由于外接程序由管理员推送,网站所有者将无法从满足部署条件的网站中删除对应的外接程序。 甚至网站集管理员也不能删除外接程序。
- 这种集中式部署还共享相同的集中式外接程序资源(外接程序 Web 和远程 Web)。 实质上,外接程序已部署,但没有安装在网站中。 所有网站都将通过安装在应用目录中的实例利用外接程序 Web 和远程 Web。
- 由于集中式部署,远程事件(如“处理已安装应用”、“处理已卸载应用”和“处理应用升级”)将只触发一次(当外接程序已安装在应用目录中时)。
- 这可能使得难以使用外接程序装订模式自动将更改应用于部署了该外接程序的网站,因为在将外接程序部署到网站时不会触发这些事件。
- 将外接程序装订到网站时不支持外接程序部件。
- 此模式需要用户手动操作来部署外接程序。
使用远程预配模式
在此模式中,可以使用 SharePoint 客户端对象模型 (CSOM) 创建和配置网站集和子网站,然后向其部署项目、配置和品牌资产。
此模式不需要将项目、配置和品牌资产打包到单独的功能或外接程序中。所有内容都可以打包在单个外接程序中。
将此模式用于网站预配时,通常会重写现有网页来创建新网站。
有关此模式的详细信息,请参阅网站预配(SharePoint 外接程序方法)
如果你希望将外接程序部署到 SharePoint 网站,这可以通过 CSOM 实现。 下面是一个通过 .app 清单文件加载 Office 外接程序并将其安装在 SharePoint 网站中的示例。
//Create a FileStream object to access the Mail Office Add-in .app file using (FileStream fsSource = new FileStream(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + "Innovation.Management.AFO.app", FileMode.Open, FileAccess.Read)) { //Return the subweb where you want to install the Add-in var subweb = ctx.Web; ctx.Load(subweb); ctx.ExecuteQuery(); //Load and Install the Add-in on the subweb AppInstance appInstance = subweb.LoadAndInstallApp(fsSource); ctx.Load(appInstance); ctx.ExecuteQuery(); }
- 观看 Creating Cloud Hosted Line Of Business Applications with Add-ins for Office, O365, Azure, and WP8(使用适用于 Office、O365、Azure 和 WP8 的外接程序创建云托管业务线应用程序)(Todd Baginski、Michael Sherman - SharePoint Conference 2014)视频,了解在预配网站时如何使用这种方法在 SharePoint 网站中安装 Office 外接程序。
- 完全自动化仅适用于具有受信任的完全租户权限的外接程序。
- 有关示例,请参阅 Core.Sideloading(O365 PnP 示例)。
相关链接
- 使用适用于 SharePoint 2013 的外接程序的自助式网站预配(MSDN 博客)
- 通过“应用装订”实现 SharePoint 2013 应用部署(MSDN 博客文章 - Richard DiZerega)
- 网站预配(SharePoint 外接程序方法)
- 使用适用于 Office、O365、Azure 和 WP8 的外接程序创建云托管业务线应用程序(Todd Baginski、Michael Sherman - SharePoint Conference 2014)
- 指南文章中 https://aka.ms/OfficeDevPnPGuidance
- MSDN 中的引用位于 https://aka.ms/OfficeDevPnPMSDN
- 视频中的 https://aka.ms/OfficeDevPnPVideos
PnP 示例
- Provisioning.Cloud.Sync(O365 PnP 示例)
- Provisioning.SubSiteCreationApp(O365 PnP 示例)
- Provisioning.Services.SiteManager(O365 PnP 示例)
- Provisioning.SiteCollectionCreation(O365 PnP 示例)
- Microsoft 365 模式和实践中的示例和内容 (PnP)
适用于
- Office 365 多租户 (MT)
- Office 365 专用 (D)
- SharePoint 2013 本地