3

I've a SharePoint site which have custom Theme, Layout, WebParts (third-party - no source code), custom user controls (with source code), and the site backup (.dat) which we took from command prompt using stsadm -o backup.

Is there a way I can bundle all of them in a single package? Should I use WSPBuilder for that? If not, then please suggest.

I've experienced with SharePoint Content Deployment Manager but couldn't get any luck. It always successful while exporting a site (include all dependencies) but never succeed when you import it back gives an error:

[2/2/2010 3:43:25 PM]: Start Time: 2/2/2010 3:43:25 PM.
[2/2/2010 3:43:25 PM]: Progress: Initializing Import.
[2/2/2010 3:43:42 PM]: FatalError: Could not find WebTemplate #75805 with LCID 1033.
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.VerifyWebTemplate(SPRequirementObject reqObj)
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.Validate(SPRequirementObject reqObj)
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.DeserializeAndValidate()
   at Microsoft.SharePoint.Deployment.SPImport.VerifyRequirements()
   at Microsoft.SharePoint.Deployment.SPImport.Run()
[2/2/2010 3:43:48 PM]: Progress: Import Completed.
[2/2/2010 3:43:48 PM]: Finish Time: 2/2/2010 3:43:48 PM.
[2/2/2010 3:43:48 PM]: Completed with 0 warnings.
[2/2/2010 3:43:48 PM]: Completed with 1 errors.
[2/2/2010 3:44:51 PM]: Start Time: 2/2/2010 3:44:51 PM.
[2/2/2010 3:44:51 PM]: Progress: Initializing Import.
[2/2/2010 3:45:08 PM]: FatalError: Could not find WebTemplate #75805 with LCID 1033.
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.VerifyWebTemplate(SPRequirementObject reqObj)
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.Validate(SPRequirementObject reqObj)
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.DeserializeAndValidate()
   at Microsoft.SharePoint.Deployment.SPImport.VerifyRequirements()
   at Microsoft.SharePoint.Deployment.SPImport.Run()
[2/2/2010 3:45:14 PM]: Progress: Import Completed.
[2/2/2010 3:45:14 PM]: Finish Time: 2/2/2010 3:45:14 PM.
[2/2/2010 3:45:14 PM]: Completed with 0 warnings.
[2/2/2010 3:45:14 PM]: Completed with 1 errors.
[2/2/2010 3:56:17 PM]: Start Time: 2/2/2010 3:56:17 PM.
[2/2/2010 3:56:17 PM]: Progress: Initializing Import.
[2/2/2010 3:56:34 PM]: FatalError: Could not find WebTemplate #75805 with LCID 1033.
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.VerifyWebTemplate(SPRequirementObject reqObj)
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.Validate(SPRequirementObject reqObj)
   at Microsoft.SharePoint.Deployment.ImportRequirementsManager.DeserializeAndValidate()
   at Microsoft.SharePoint.Deployment.SPImport.VerifyRequirements()
   at Microsoft.SharePoint.Deployment.SPImport.Run()
[2/2/2010 3:56:39 PM]: Progress: Import Completed.
[2/2/2010 3:56:39 PM]: Finish Time: 2/2/2010 3:56:39 PM.
[2/2/2010 3:56:39 PM]: Completed with 0 warnings.
[2/2/2010 3:56:39 PM]: Completed with 1 errors.

I don't know whether it has a purpose of what I am looking for. What exactly it means by above I don't have any idea.

3 Answers 3

3

Yes you can use WSPBuilder to package all your stuff. It's a great tool for that. You should leave the site backup out of though and restore that manually.

Regarding your error; make sure that you have installed the same features/templates on the target farm where you restore your site.

13
  • Thanks, Wictor. And how do I do with WSPBuilder?
    – Anonymous
    Feb 8, 2010 at 10:22
  • Hi, read through Tobias Zimmergrens WSPBuilder tutorial zimmergren.net/archive/2009/04/08/…. Once you've read that I think you will get the picture. Feb 8, 2010 at 10:25
  • I remember followed some articles of zimmergren but couldn't find on the context what am looking for. I don't have idea how to package themes, layout and third-party webparts through wspbuilder? Any reference for that? Thanks.
    – Anonymous
    Feb 8, 2010 at 10:31
  • 1
    FYI: Custom user controls (.ascx) should be placed in /12/Template/ControlTemplates/<customfolder> instead of in the website. Feb 8, 2010 at 10:54
  • 1
    You could extract the .wsp files and add them to your own, but I think you should rather let them be. Create an install script or similar to install them at once instead. Web.config modifications should be done using the SPWebConfigModification classes in a feature, so that they are replicated to all WFEs. Feb 8, 2010 at 11:27
4

A couple of points to consider here:

  • SharePoint isn't designed to have a single package which captures everything. Like most SharePoint 2007 developers, I'd agree with Wictor that WSPBuilder is the way to go for packaging up custom code assets such as assemblies, 12 hive files etc. - these get packaged up into Features and Solutions (.wsp). However this will not move content.
  • Backup and restore is not recommended as a way to move content between environments
  • To move content (data), the options are typically Content Deployment or STSADM export/import. When you say 'Sharepoint Content Deployment Manager', I'm guessing you mean my tool, the SharePoint Content Deployment Wizard - this uses Content Deployment to move content, and works between farms. However, as you've found in the error messages you pasted above, all the dependent files in the 12 hive (such as site definitions ['web templates' in the message]) must be present on the filesystem before the import can be successful. When you 'include dependencies' in my tool, this means dependencies between the content e.g. the master page for a given page etc., not file system dependencies as there are outside the scope of SharePoint Content Deployment.

In summary, deployment between environments in SharePoint often combines approaches e.g. WSPBuilder + Content Deployment. For further reading, check out STSADM export, Content Deployment, Content Migration API, Features/Solutions - deployment options compared.

If you have further questions, feel free to ask.

4
  • Can I see some examples/tutorial that explain how to deploy themes, layouts, custom user controls and web parts with wspbuilder? Now, I get it, correct me if I am wrong, I've to first run the wspbuilder deployment package on the farm and then run the SharePoint Content Deployment Wizard. I guess then I won't get any error messsages. Right?
    – Anonymous
    Feb 8, 2010 at 10:56
  • 2
    Yes, install the WSP(s) first then run the import with the Content Deployment Wizard and you should be fine - so long as everything is indeed captured by your WSP(s). In terms of a guide to WSPBuilder, I think the link Wictor gave could be the best. Feb 8, 2010 at 11:22
  • thanks Chris. I hope you have an idea I ask the same thing to Wictor as you know when you are deploying themes and styles you need to modify sptheme.xml. And when your controls are developed on ajax extension you need to install them on pre production and put them as safe controls in site web.config? do you have a solution of this how to bundle it in wspbuilder instead of doing manually. thanks again for your great help!
    – Anonymous
    Feb 8, 2010 at 13:08
  • 1
    In terms of modifying spthemes.xml, this would have to be done by a timer job - this post from Keith Dahlby has good info - solutionizing.net/2008/07/09/…. [Note that this is a fairly advanced technique if you haven't seen it before, but is the only way apart from modifying the file by hand.] In terms of making web.config changes for AJAX, Scot Hilier's Features project has a feature to do this - codeplex.com/features Feb 8, 2010 at 14:46
0

As an extension to the string above, when attempting to move a site, one may also consider 3rd party solutions such as ROSS from RepliWeb ... ROSS attempts to take into consideration the interdependencies across SharePoint assets and resolve them on target (in addition to layers of automation, etc.).

Brad (RepliWeb)

1
  • @Brad: Thank you for disclosing your company. Note that SharePoint Overflow is a community site not an advertising platform. Please also contribute to the site in other ways.
    – Alex Angas
    Feb 10, 2010 at 11:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.