If you are considering to upgrade SharePoint 2010 custom solutions solution (as a WSP) to 2013, you might be aware SharePoint 2013 supports back compatible 2010 solutions and there is a really good chance solutions will work. The reason is the solutions will be deployed to 14 hive to support 2010 compatibility. However if you want to compile against .Net 4.0, take advantage of some tasty features in 2013, fully support SharePoint 2013, and avoid future upgrade issues, you should upgrade the solutions.
There are several different ways to upgrade solutions to SharePoint 2013. The most two popular ones are listed below with pros and cons.
1. Create new visual studio 2012 SharePoint 2013 project and add back logic from 2010 solution
- Pros - New projects will add correct references and deployment locations automatically
- Cons - Feature ID and GUID need to be manually updated to previous values
- Pros - Feature ID and GUID need to be manually updated to previous values
- Cons - References and deployment locations need to be manually updated
Based on the pros and cons for these two approaches, we found approach #1 might be quicker for any solutions that contain custom master pages, use controls, aspx pages since would be difficult to modify all the references. Approach#2 might be quicker if you upgrade the back end solutions like timer jobs or features. However, there are several places you need to change manually.
No matter which way you upgrade the SharePoint 2010 custom solutions, you would need a quick way to verify whether you have upgraded and will fully support SharePoint 2013. Here are the procedures you should try to verify.
Before deploy the upgraded SharePoint solutions, make the following folders ready only.
- Assembly folder - c:\winsdows\assembly
- 14 hive folder - c:\Program Files\Common files\Microsoft Shared\Web Server Extensions\14
- SharePoint .Net 4+ assembly folder - c:\windows\microsoft.net\assembly
- SharePoint 2013 15 hive folder - c:\Program Files\Common files\Microsoft Shared\Web Server Extensions\15
Of cause, you should verify the functions especially focus on the client side rendering code and depreciated APIs.