Today I solved another sharepointastic riddle. As you maybe know, it's possible to assemble a web with all lists, content and what else you need, and save it as Site Template for reuse. After that you can create new sites by gui or on programmatical way.
But be careful! If you created the .stp-File on a MOSS 2007 with Enterprise-licence, you may see this nice error-message when you try to create a site on a MOSS 2007 without Enterprise-licence (Standard-licence only):
"The template you have chosen is invalud or cannot be found". Jippiejajee Schweinebacke!
The first location I visited was the SharePoint-Logs. Very often I don't find any clues for problems but this time - oh wonder - I did:
Applying template "Deployment.stp" to web at URL "http://server/sites/test/deployment".
05/27/2010 14:07:51.87 w3wp.exe (0x06D4) 0x0A14 Windows SharePoint Services Fields 88ys Medium Failed to get the site template for language 1033, search key 'Deployment.stp'. This warning is expected when provisioning from a custom web template.
05/27/2010 14:07:53.57 w3wp.exe (0x06D4) 0x0A14 Windows SharePoint Services Fields 936z Medium Marking web-scoped features active from manifest at URL "http://server/sites/test/deployment"
05/27/2010 14:07:54.41 w3wp.exe (0x06D4) 0x0A14 Windows SharePoint Services General 936x High Failed to mark site-scoped features active in site 'http://server/sites/test/deployment'.
05/27/2010 14:07:54.44 w3wp.exe (0x06D4) 0x0A14 Windows SharePoint Services General 72h9 High Failed to apply template "Deployment.stp" to web at URL "http://server/sites/test/deployment".
05/27/2010 14:07:54.44 w3wp.exe (0x06D4) 0x0A14 Windows SharePoint Services General 72k2 High Failed to apply template "Deployment.stp" to web at URL "http://server/sites/test/deployment", error The template you have chosen is invalid or cannot be found. 0x81071e44
05/27/2010 14:07:54.44 w3wp.exe (0x06D4) 0x0A14 Windows SharePoint Services General 8kh7 High The template you have chosen is invalid or cannot be found.
Alright, this approved my assumption an Enterprise-feature that's not available in Standard-licence is making trouble here.
So I activated google for a page that lists the differences between Enterprise- and Standard-Features and after a while I found a helpful blogpost in the msdn:
Office SharePoint Server Enterprise Site features
Internal Feature Name: PremiumWeb
Feature Id: 0806D127-06E6-447a-980E-2E90B03101B8
Feature Definition Id | Feature Display Name |
E8734BB6-BE8E-48A1-B036-5A40FF0B8A81 | RelatedLinksScopeSettingsLink |
56DD7FE7-A155-4283-B5E6-6147560601EE | AnalyticsLinks |
0BE49FE9-9BC9-409d-ABF9-702753BD878D | SlideLibrary |
065C78BE-5231-477e-A972-14177CC5B3C7 | BizAppsListTemplates (KPI List) |
2510D73F-7109-4ccc-8A1C-314894DEEB3A | ReportListTemplate |
00BFEA71-DBD7-4F72-B8CB-DA7AC0440130 | DataConnectionLibrary |
These are the features on Web-Scope that aren't available on the Standard-licenced server. The blog-post also lists Enterprise-features on SiteCollection - and WebApplication-Scope.
Now I had to look into the .stp-File. To do so, I renamed the deployment.stp to deployment.cab and extracted it into c:\temp\deployment.
I opened the manifest.xml, searched for each of the feature definition ids and removed the whole -tags. Now the tricky part came: how to get back all extracted files to a .stp without writing a .ddf-file?
Forget about MAKECAB.EXE, use CABARC.EXE! It's a tool in Microsofts Cabinet Software Development Kit; you can download it here: http://support.microsoft.com/kb/310618
The webpage on http://www3.hi.is/~snorri/SDK-docs/tools/tools008.htm lists a lot examples of how to use cabarc. So I copied CABARC.EXE into c:\temp and used this command to create my new deployment.stp-file:
c:\temp\cabarc n deployment.stp deployment\*.*
Now I have a new working .stp-file I can use as SiteTemplate to create sites on a MOSS 2007 with Standard-licence.