Download presentation
Presentation is loading. Please wait.
Published byAdrian Fields Modified over 9 years ago
1
Visual Studio 2005 and 2008 coexistence Code Camp 2008 Emmet Gray http://home.hot.rr.com/graye
2
Introduction Visual Studio 2005 Designed for.Net Framework 2.0 Designed for.Net Framework 2.0 Available Nov 2005 Available Nov 2005 Subsequent add-ons for.Net Framework 3.0 Subsequent add-ons for.Net Framework 3.0 Visual Studio 2008 Designed for.Net Framework 3.5 Designed for.Net Framework 3.5 Available Feb 2008 Available Feb 2008
3
Backwards Compatibility VS2008 can target multiple versions of the Framework 2.0, 3.0, and 3.5 2.0, 3.0, and 3.5 The.Net Framework 3.5 is built upon 2.0 The “core” of the framework is still 2.0 The “core” of the framework is still 2.0 New features of 3.x are (obviously) not available to 2.0 applications
4
Why Co-existence? VS2008 has reduced support for “classic” ASP Custom VS2005 adds-in may not yet be available for VS2008 Manually edit the.addin file Manually edit the.addin file
5
Backwards Compatibility VS2008 can target multiple versions of the Framework 2.0, 3.0, and 3.5 2.0, 3.0, and 3.5 The.Net Framework 3.5 is built upon 2.0 The “core” of the framework is still 2.0 The “core” of the framework is still 2.0 New features of 3.x are (obviously) not available to 2.0 applications
6
Conversion Wizard VS2008 will automatically convert a VS2005 project when opened Will not automatically convert an older VS2002 (v7.0) or VS2003 (v7.1) project Will not automatically convert an older VS2002 (v7.0) or VS2003 (v7.1) project The conversion is “one way”, so after conversion, you will no longer be able to open the project in VS2005
7
Problems with this approach Causes problems with shared source code (ie Source Code Control systems) You may not be able to do a phased roll- out of VS2008 among your VS2005 developers Users with only VS2005 can’t download and use examples in VS2008 format
8
Solutions Install VS2008 along side VS2005? Doesn’t solve the problem of accidentally converting a shared project Doesn’t solve the problem of accidentally converting a shared project VS2008 is about 3.8 Gb for a full install VS2008 is about 3.8 Gb for a full install Defeats the purpose of the “targeting” feature Defeats the purpose of the “targeting” feature Convert everyone to VS2008 simultaneously Use a standalone utility to convert between the two versions of Visual Studio
9
Designing a Standalone Utility Discover the differences between the solution and project files *.vbproj, *.csproj - uses the “MSBuild” schema *.vbproj, *.csproj - uses the “MSBuild” schema *.vcproj – uses the “Visual C” schema *.vcproj – uses the “Visual C” schema *.sln – not XML based, no schema *.sln – not XML based, no schema Microsoft provides the documentation for the schemas Series of “file diffs” to detect the changes
10
Solution Files Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ProjectConverter“, "ProjectConverter.vbproj", "{B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0}" EndProjectGlobal GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution {B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0}.Release|Any CPU.Build.0 =Release|Any CPU {B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0}.Release|Any CPU.Build.0 =Release|Any CPU EndGlobalSection EndGlobalSection GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE HideSolutionNode = FALSE EndGlobalSection EndGlobalSectionEndGlobal
11
Solution Files (continued) Product NameProduct VersionFile Format Visual Studio.Netv7.07 Visual Studio.Net 2003v7.18 Visual Studio 2005v8.09 Visual Studio 2008v9.010 File Format (schema) versions:
12
Project Files Debug Debug AnyCPU AnyCPU 9.0.21022 9.0.21022 2.0 2.0 {B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0} {B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0} WinExe WinExe ProjectConverter.My.MyApplication ProjectConverter.My.MyApplication ProjectConverter ProjectConverter 512 512 WindowsForms WindowsForms v2.0 v2.0
13
Project Files (continued) Differences between versions: ElementVS2005VS2008 ToolsVersionAbsent3.5 ProjectVersion8.0.507279.0.21022 OldToolsVersionAbsent2.0 (if converterd) TargetFrameworkVersionAbsent2.0 Bootstrapper.Net Framework 2.0.Net Framework 2.0 (x86) ImportProjects$(MSBuildBinPath)$(MSBuildToolsPath)
14
ProjectConverter Utility Standalone application Does not require VS2008 Does not require VS2008 Converts project/solution files between VS2005 and VS2008 Does not alter source code at all Does not alter source code at all Can be installed to gain a “shell extension” for solutions files (*.sln) that offers an “open with” option to launch the utility
15
ProjectConverter Utility Quick tour of the source code
16
End Notes ProjectConverter is a free utility Available as VB.Net and C# source code only, so you have to compile it yourself Available as VB.Net and C# source code only, so you have to compile it yourself Source code is available at: http://home.hot.rr.com/graye/Articles/ProjectConverter.htm
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.