如何使用 PnP 供应引擎在 SharePoint Online 中供应发布页面?
How to provision Publishing Pages in SharePoint Online using PnP Provisioning Engine?
我正在使用 PnP 设置引擎将一个网站集远程设置到 SharePoint Online 中的另一个网站集,如本视频所示:https://channel9.msdn.com/blogs/OfficeDevPnP/Introduction-to-PnP-site-remote-provisioning-engine
其余部分工作正常,但不提供发布页面。我创建配置模板的代码如下:
private static void GetProvisioningTemplate(ConsoleColor defaultForeground, string webUrl, string userName, SecureString password)
{
using (var context = new ClientContext(webUrl))
{
context.Credentials = new SharePointOnlineCredentials(userName, password);
Web web = context.Web;
context.Load(web, w => w.Title);
context.ExecuteQueryRetry();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Your Site Title is: " + context.Web.Title);
Console.ForegroundColor = defaultForeground;
ProvisioningTemplateCreationInformation ptci = new ProvisioningTemplateCreationInformation(web);
ptci.FileConnector = new FileSystemConnector(String.Format(@"{0}\..\..\", AppDomain.CurrentDomain.BaseDirectory), "");
ptci.PersistBrandingFiles = true;
ptci.PersistPublishingFiles = true;
ptci.IncludeNativePublishingFiles = true;
ptci.ProgressDelegate = delegate(String message, Int32 progress, Int32 total)
{
Console.WriteLine("{0:00}/{1:00} - {2}", progress, total, message);
};
ProvisioningTemplate template = web.GetProvisioningTemplate(ptci);
XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(String.Format(@"{0}\..\..\", AppDomain.CurrentDomain.BaseDirectory), "");
provider.SaveAs(template, "PnPProvisioningDemo.xml");
}
}
当我检查 XML 模板时,它没有向我显示发布页面的详细信息,也没有在应用此模板时将任何发布页面配置到目标站点。
所以关于使用此引擎提供发布页面的任何建议。
提前致谢!
我了解到供应引擎不支持发布页面。
来源:https://techcommunity.microsoft.com/t5/SharePoint-Developer/PnP-Provisioning-Engine-template-support-for-publishing-pages/td-p/46465 来自 2017 年 2 月 16 日。
但您可以使用 pnp:File
添加发布页面
<pnp:File src="mypublishingpage.aspx" Folder="{site}/Pages" Overwrite="true">
<pnp:Properties>
<pnp:Property Key="ContentTypeId" Value="{contenttypeid:MyPageContentType}" />
<pnp:Property Key="Title" Value="My Publishing Page" />
<pnp:Property Key="PublishingPageLayout" Value="{sitecollection}/_catalogs/masterpage/MyPageLayout.aspx, My Page Layout" />
</pnp:Properties>
</pnp:File>
尝试
ptci.IncludeAllClientSidePages = true;
程序集PnP.Framework,版本=1.9.0.0
我正在使用 PnP 设置引擎将一个网站集远程设置到 SharePoint Online 中的另一个网站集,如本视频所示:https://channel9.msdn.com/blogs/OfficeDevPnP/Introduction-to-PnP-site-remote-provisioning-engine
其余部分工作正常,但不提供发布页面。我创建配置模板的代码如下:
private static void GetProvisioningTemplate(ConsoleColor defaultForeground, string webUrl, string userName, SecureString password)
{
using (var context = new ClientContext(webUrl))
{
context.Credentials = new SharePointOnlineCredentials(userName, password);
Web web = context.Web;
context.Load(web, w => w.Title);
context.ExecuteQueryRetry();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Your Site Title is: " + context.Web.Title);
Console.ForegroundColor = defaultForeground;
ProvisioningTemplateCreationInformation ptci = new ProvisioningTemplateCreationInformation(web);
ptci.FileConnector = new FileSystemConnector(String.Format(@"{0}\..\..\", AppDomain.CurrentDomain.BaseDirectory), "");
ptci.PersistBrandingFiles = true;
ptci.PersistPublishingFiles = true;
ptci.IncludeNativePublishingFiles = true;
ptci.ProgressDelegate = delegate(String message, Int32 progress, Int32 total)
{
Console.WriteLine("{0:00}/{1:00} - {2}", progress, total, message);
};
ProvisioningTemplate template = web.GetProvisioningTemplate(ptci);
XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(String.Format(@"{0}\..\..\", AppDomain.CurrentDomain.BaseDirectory), "");
provider.SaveAs(template, "PnPProvisioningDemo.xml");
}
}
当我检查 XML 模板时,它没有向我显示发布页面的详细信息,也没有在应用此模板时将任何发布页面配置到目标站点。
所以关于使用此引擎提供发布页面的任何建议。
提前致谢!
我了解到供应引擎不支持发布页面。
来源:https://techcommunity.microsoft.com/t5/SharePoint-Developer/PnP-Provisioning-Engine-template-support-for-publishing-pages/td-p/46465 来自 2017 年 2 月 16 日。
但您可以使用 pnp:File
添加发布页面<pnp:File src="mypublishingpage.aspx" Folder="{site}/Pages" Overwrite="true">
<pnp:Properties>
<pnp:Property Key="ContentTypeId" Value="{contenttypeid:MyPageContentType}" />
<pnp:Property Key="Title" Value="My Publishing Page" />
<pnp:Property Key="PublishingPageLayout" Value="{sitecollection}/_catalogs/masterpage/MyPageLayout.aspx, My Page Layout" />
</pnp:Properties>
</pnp:File>
尝试
ptci.IncludeAllClientSidePages = true;
程序集PnP.Framework,版本=1.9.0.0