Round-Tripping: Using Visual Studio 2010 and 2012 on the Same Project
In the past, when developers migrated a project to a new version of Visual Studio, it became unusable in any earlier version. Visual Studio 2012 RC introduces a feature called "project round-tripping", which has begun to make it possible for teams to work on a project in either Visual Studio 2010 or 2012.
Service Pack 1 for Visual Studio 2010 included the framework for project round-tripping. According to the Visual Studio Blog:
In Visual Studio 2010, we enabled full multi-targeting which severed the one-to-one tie between Visual Studio and the .NET runtime. This allowed projects created in Visual Studio 2010 to target older .NET Frameworks, and took us halfway towards enabling round-tripping of projects between Visual Studio versions. In Visual Studio 11, we took the next natural step of correctly handling projects when operating in different environments.
The most important considerations prior to using the round-tripping functionality are that projects are only backwards-compatible with Visual Studio 2010 SP1, and that the application must target .NET Framework 2-4. Compatibility also varies by project type, and some projects are excluded completely. (Microsoft has provided an extensive list with compatibility details.)
Microsoft states that the majority of projects will behave the same in Visual Studio 2010 SP1 and 2012, and round-trip with no issues. Those that have a hardcoded version number in the build path will be automatically updated to use a variable for this value instead, and that will be the only modification needed. Projects that should round-trip seamlessly include some of the following types: Windows Forms, Sharepoint, WCF, WPF, and most SQL Server projects.
Other projects can be upgraded automatically for round-tripping. Visual Studio 2012 will present a 'Review Project and Solution Changes' dialog when the project is opened, and display the impacted items. The user can review the proposed changes before they occur, and a backup is created as part of the process. Once Visual Studio 2012 performs the modifications, the project can be used in both versions 2012 and 2010 SP1. Silverlight 4 or 5, Blend, and Visual Studio 2010 web projects fall into this category.
Certain types of projects will behave as in previous Visual Studio upgrades: once they’re converted, they cannot be used in any other version of Visual Studio. These types include F#, LightSwitch, and SQL Server LocalDB.
Windows Phone, Windows Mobile, Cloud tools for Windows Azure, BizTalk 2010 R2, and Visual Studio Installer (.msi) projects cannot be used in Visual Studio 2012 RC. Microsoft has not yet supplied details about whether round-tripping will be added for these types of projects in the final release. For installer projects, they are encouraging developers to use InstallShield Limited Edition for Visual Studio instead.