SharePoint 2010 Site Templates vs. Features

In SharePoint v4, site templates are considered more generically as solutions; when you save your site as a template, you end up wth a .wsp solution file, not a .stp file like in v3.

So, in our site collection, we go into site settings and select the Solutions gallery.

We can use the ribbon to select Upload Solution and get a dialog box to upload one or more solutions. After uploading, you can pull down the list item menu and select Activate. 

Once activated, we can go back to View All Site Content (/_layouts/viewlsts.aspx) and click Create. In the Create dialog box, we should see our new template listed in the sites group, perhaps filtering for Custom.

We add the site name and URL and click Create. Done.

But, this being SharePoint, like any fake religion such as the Flying Spaghetti Monster, it can be more complicated at times.

As we have seen in the past, the environment from which your site template is created casts a set of requirements on your target environment in the form of host features. For example, on one particular case, we’ve created a template from a site created on a SharePoint Server 2010 host that had been migrated from MOSS 2007.

The MOSS 2007 host, of course, included a site directory and the Site Directory site had been migrated into 2010 and the site from which the template had been created was a 2010 blank site under the Site Directory site. Got it?

Well, our host site was never a MOSS 2007 host so it doesn’t have a site directory. Consquently, when we try to create our new site on this 2010 host, we get:

Error
The site template requires that the Feature
{a392da98-270b-4e85-9769-04c0fde267aa} be activated in
the site collection.
Correlation ID: {9b9ab22e-1774-42f0-b0ca-1d3d795adaf1}
Date and Time: 12/22/2010 11:44:12 AM

So we can search for two things. First,

First, we’re still struggling with this whole Correlation ID thing. Lucky enough, our new best friend, Dina, provides an explanation here.

Then, we find a reference to the Feature ID here. It’s not great but and it’s referring to MOSS 2007 but it suggests we activate the Publishing Infrastructure feature at the site collection level and the Publishing feature at the Site level. Done.a

-Now, attempting to create a site using our template gives us:

Error
The site template requires that the Feature
{e978b1a6-8de7-49d0-8600-09a250354e14} be activated in
the site collection.
Correlation ID: {3aa51c89-319b-4d27-a64e-aa5d6833360e}
Date and Time: 12/22/2010 11:44:12 AM

This is cool because we touched it and made it do something different. When we look for this new Feature ID, we find this from 0ur new best friend, Steve. At the very bottom, he tells us our Feature ID refers to the LocalSiteDirectorySettings feature and, like we said, there’s no Site Directory in the 2010 host.

So what we have here is a feature that’s required by my site template but is deprecated in 2010; it’s only an issue because it was created from a site under a site directory that would never have existed except that it was migrated from 2007.

So, I spend the day looking and find this from MSDN. First it tells me to go look in the \14\Templates\Features folder where, believe it or not, contains all our features listed as folders in English readable text. I open the one called \LocalSiteDirectorySettingsLink and edit the Feature.xml file and see that is indeed the GUID of the feature I need.

Then, the MSDN article suggests we run some PowerShell to install and or activate the feature using the <Command> <FolderName> <URL> format.

I try but find that while the <foldername> parameter doesn’t work, the GUID does. I get the feature activated in my site collection and try to build the site from my template again. This time I get:

Error
The site template requires that the Feature
{fdb3e1d1-a200-46b3-ac54-11f69c0baac4} be activated in
the site collection.
Correlation ID: {adf2a768-2a9d-4fe5-b006-898d9ea0f859}
Date and Time: 12/22/2010 11:44:12 AM

References:


Tags:

 
 
 

Comments are closed.