After my demo on the PnP screen cast where I showed a provisioning solution based on PowerShell and Azure web jobs, I’ve had some questions about how you go about creating the .pnp files we use for provisioning templates.
There are basically two options, and it’s quite easy. For full samples run Get-Help <command> –Examples on the command lets. If you want to use code instead of PowerShell, look at the PowerShell code in github and see how it’s all implemented.
Generate .pnp file from a site
Connect to the site, and then run:
PS:> Get-PnPProvisioningTemplate -Out template.pnp
By naming the output .pnp, you get a .pnp file instead of and .xml file.
Generate .pnp file from a template xml file
This works for both a single .xml file, or one referencing artifacts.
Make sure the .xml file and all artifacts are stored in a folder. Then run:
PS:> Convert-PnPFolderToProvisioningTemplate -Out template.pnp -Folder c:\temp
It’s important that the .pnp file has the same name as the .xml file inside the folder, due to convention when applying the template, as you can have multiple .xml files in a complete template referenced with <xi:include> statements.