MOSS 2007 upgrade moving SharePoint customizations

MOSS 2007 upgrade moving SharePoint customizations

Applying SharePoint customizations to the new farm is the most important step in migrating SharePoint. Check out how to do this in details.

MOSS 2007 upgrade moving SharePoint customizations

This post will focus on the following topics.

What is meant by customizations?

SharePoint provides many features, web parts, themes and other capabilities out-of-the-box. 

Once you install SharePoint, you get all of these out-of-the-box features in hand and you can use them across your sites and web applications. 

Sometimes, in some cases, it turns out that these out-of-the-box web parts, features or, for example, event receivers, are not sufficient as a solution to some business requirements. 

In this case, SharePoint developers find themselves in need to customize a solution to fulfill what's required by either developing a custom feature, custom web part, custom event receiver, custom master page or even custom site definition. 

Everything that's done custom is a customization that needs to be moved to the new SharePoint 2010 farm.

Database-Attach SharePoint upgrade approach will not move the customization to the new farm automatically. 

Moving customizations needs to be done manually and it's the hardest step in the Database-Attach upgrade. 

For knowing the differences, advantages and disadvantages between the Database-Attach upgrade approach and the In-Place upgrade approach, please revise MOSS 2007 upgrade and migration to SharePoint 2010 in details.

Create a new web application

Before we go through pulling and applying the customizations, we should create a web application on the new SharePoint 2010 server. 

This web application will be the migrated one corresponding to its current one on MOSS 2007 server. 

To create a new SharePoint 2010 web application, follow these steps.

  1. Go to Central Administration.
  2. Under Application Management section, click Manage web applications.
  3. At the top of the page, on the SharePoint ribbon, click New.
  4. On the Create new web application window, rename the IIS website name to your preferred name. Change the port number to be like the port number of your original MOSS 2007 web application. Leave the rest of the fields to their default values. Click OK and wait while the SharePoint server prepares your new web application.

Lets assume in this post that the newly created web application URL will be http://webapp

NOTE: Do not create any site collections under this web application. You should only have a new SharePoint web application created and the migration will do the rest.

Customizations checklist

The first step in moving and applying the customizations to the new SharePoint 2010 farm if that you should prepare a checklist to follow when you explore your old MOSS 2007 farm for customizations. In this post, there is a very useful checklist that can guide you through this.

Custom SharePoint solutions (WSP files)

SharePoint solution files are packaging files that are used to contain a set of features, site definitions or assemblies. 

WSP stands for Windows SharePoint. 

The WSP files are reusable and can be moved and used on other farms.

In this post we will discuss two different ways to get all the SharePoint custom solutions from your MOSS 2007 farm. 

The easiest way to do this is by using the SharePoint Farm Solution Extractor. Follow these steps to get your SharePoint custom solutions.

  1. Download the SharePointFarmSolutionExtractor.exe from
  2. In your MOSS 2007 farm, move the SharePointFarmSolutionExtractor.exe to the bin folder in the 12 hives. (You can move it anywhere but the 12 hives bin folder is where all the SharePoint tools are, so moving the EXE file there will keep everything in one place). For more information about the 12 hives terminology, please visit MOSS 2007 upgrade - SharePoint 2010 new farm topology and specifications.
  3. Open the command prompt console.
  4. Go to the 12 hives bin folder using the command prompt.
    cd C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin
  5. To list all the current SharePoint solutions installed on the MOSS 2007 farm, type in this command
    SharePointFarmSolutionExtractor -list
  6. To extract all the SharePoint solutions, create a new folder on your C drive, for example, and name it "CustomSolutions" then type in this command
    SharePointFarmSolutionExtractor -extractAll C:/CustomSolutions
    This command will extract all the custom solutions currently installed on your MOSS 2007 farm and put them in the "CustomSolutions" folder.

If you find yourself having any concerns downloading and moving any external tools to your current farm then the other solution might fit your needs. 

Only using the Windows PowerShell command prompt you can extract all the SharePoint solution files installed on the farm. Follow these steps.

  1. Create a new folder on C drive, for example, and name it "CustomSolutions".
  2. Open Windows PowerShell command prompt.
  3. Run the following command
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Sharepoint") $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local foreach ($solution in $farm.Solutions) { $file = $solution.SolutionFile $file.SaveAs("c:\CustomSolutions\"+ $solution.Name) }
    This command gets the local farm, loops over all the solutions in the farm, gets every solution file and save it to the "CustomSolutions" folder.

Either ways, using the SharePointFarmSolutionExtractor.exe or the Windows PowerShell command will get the same result. 

Your SharePoint farm solution files are extracted. Now it's time to move these files to the new SharePoint 2010 web server.

When you finish moving the SharePoint solution files, you will need to install every solution file and deploy it. 

Follow these steps to install and deploy your SharePoint solution files to the new SharePoint 2010 web server.

  1. Log into the SharePoint 2010 web server.
  2. Open SharePoint Management Shell command prompt.
  3. Go to the folder containing the SharePoint solution files. Lets assume they are in a folder named "CustomSolutions" on the C drive.
    cd C:/CustomSolutions
  4. For every solution file in the "CustomSolutions" folder, type in this command
    Add-SPSolution "SolutionFile.wsp"
    Where SolutionFile.wsp is the name of the solution file. This command will just install every solution file to the current SharePoint 2010 web server. Repeat this step for all the solution files.
  5. Now it's time to deploy every solution file to its corresponding scope. Either to the farm, web application or a site. To deploy a solution file, you should type in this command
    stsadm –o deploysolution –name SolutionFile.wsp –allowCasPolicies –immediate –allowGacDeployment
    Where SolutionFile.wsp is the name of the solution file. This command will deploy the SolutionFile.wsp to the farm and allow GAC deployment to the Windows Assembly Cache. If this command resulted in an error that the solution is scoped to a specific web application then type in this command instead
    stsadm –o deploysolution –name SolutionFile.wsp -url http://webapp –allowCasPolicies –immediate –allowGacDeployment
    Where http://webapp is the URL of the scoped web application.

You are done installing and deploying the SharePoint solutions to the new SharePoint 2010 server. Now it's time to move on to the next item in the checklist.

WCF or web services

The old MOSS 2007 web application that needs to be migrated and upgraded to SharePoint 2010 might be having some connections to web services or WCF services. 

All these services should have either installed on the new SharePoint 2010 server or just have an open connection to the new SharePoint 2010 server. 

If you found these services installed as a website on the same IIS of the MOSS 2007 web applications then you should move these web services and WCF services to the new SharePoint 2010 server's IIS. Migration is just building a corresponding environment for the old web applications.

You should enable WCF services on your new SharePoint 2010 server. Follow these steps to achieve this.

  1. Open command prompt on your SharePoint 2010 server.
  2. Go to the current framework's installation directory C:\Windows\Microsoft.NET\Framework\Framework_Version using the CD command.
  3. Type in this command
    ServiceModelReg –i

Now after you have enabled WCF on your SharePoint 2010 server, you should create a new website on the IIS of the SharePoint 2010 server for every WCF or web service.

NOTE: This step should be handled only in case you have found that your MOSS 2007 web application has connections to web services or WCF services.

The 12 hives versus 14 hives

Most of the customizations done to SharePoint, like custom site definitions, features, web parts and so on, have some files added to the SharePoint hives. 

So to make sure we have all these custom files transferred from the 12 hives to the 14 hives we will compare the directory structure for the MOSS 2007 12 hives with the SharePoint 2010 14 hives using any tool that can compare directory structures. 

In this post the Beyond Compare is recommended.

NOTE: The 14 hives terminology is the same like 12 hives but for SharePoint 2010.

Web applications directory structure

This step is similar to the previous step. 

The original web application's directory structure on MOSS 2007 server will be compared with the new web application's directory structure created on SharePoint 2010 server.

In this step you will compare both directory structures and files. 

The following checklist will move you through all the files that you might need to compare.

  • web.config: When you compare web.config files, be careful not to overwrite any section in the new SharePoint 2010 web application. You should only add sections to it that concerns customizations. Overwriting any section may lead to future errors that might be hard to track and catch.
  • global.asax: Copy the events inside this file to the new web.config of SharePoint 2010 web application.

Windows Global Assembly Cache (GAC) assemblies

In this step you will check if there are any custom assemblies in the Global Assembly Cache (GAC) of your MOSS 2007 server. 

GAC assemblies are resident in the path C:/windows/assembly. 

To install the GAC assemblies to the new SharePoint 2010 farm, type in the following command in the command prompt

gacutil –i "assembly path"
Where "assembly path" is the full path to the assembly that needs to be installed to the GAC.

Custom databases

In this step you should check the MOSS 2007 web application's web.config, specially the connection strings section. 

If you found any connections to external databases then you should make sure that these connections should be open to the new SharePoint 2010 server.

Scheduled tasks

Check the scheduled tasks on MOSS 2007 server, or any other server in the farm, and if you found any, then you should check what these tasks do, if they are starting a program or sending an email, then check the path of the scheduled application programs or scripts, copy them to the SharePoint 2010 server and reschedule them on the SharePoint 2010 server.

To view the current scheduled tasks, if you are using Windows Server 2008 R2, then follow these steps.

  1. Click Start, then All Programs.
  2. Click Administrative Tools.
  3. Click Task Scheduler.

You are ready for the upgrade

You may have more or less checklist items for customizations in your MOSS 2007 farm but the above checklist might be helpful for you checking most of the crucial customizations that must be looked out. 

Now you are ready for the next step. 

That will be the heart of the SharePoint upgrade process. 

Check MOSS 2007 upgrade - Upgrading content databases

Did you find this helpful?

Read Next

The following articles are related to moss 2007 upgrade moving sharepoint customizations.

MOSS 2007 upgrade moving SharePoint customizations
Fady Soliman
Fady SolimanMember since
Jun 22, 2013
Contact Us
Share your COMMENT!

Share your thoughts and feedback on MOSS 2007 upgrade moving SharePoint customizations

Ask any questions directly to Fady Soliman and the community!

By using this channel you approve that you agree on our Terms and Conditions