views:

145

answers:

2

Hi,

I have a VS project (made by someone else), and when I try to open it on Visual Studio 2008, I get the following error message:

"The selected file is a solution file, but was created by a newer version of this application and cannot be opened"

I would have thought VS was backwards compatible. Is there any way I can open this?

+2  A: 

VS is backwards compatible, yes - you can open a VS 2005 solution file in VS 2008, for example. It's not forward compatible though - presumably that solution has been created by someone with VS 2010.

Fortunately, although the solution files aren't compatible, I believe you should be able to create a new solution in VS 2008 and add the existing project files created with 2010, so long as they haven't used any VS2010-specific features (either in the project structure or in the code itself). If the code targets .NET 4, you may need to adjust the project file to retarget it to .NET 3.5, too.

You may well see a warning about this (an unknown tools version, or something like that) - but it may very well work. I have a number of projects which have separate solution files for VS2008 and VS2010, but which use the same project files.

Jon Skeet
@Jon, thanks for the reply. This project has a LARGE amount of project files. Would it just be easier to get VS 2010?
TaraWalsh
@TaraW, it seems multi-selecting a bunch of csproj files would be a lot less work than installing a VS2010 version. For the rest 2010 is not a bad idea of course.
Henk Holterman
@TaraWalsh: If getting VS2010 is an option, then I'd do that anyway. It's nicer than VS2008, and you'll get the new features of C#4/VB10, .NET 4 etc.
Jon Skeet
+1  A: 

You can edit the sln and csproj/vbproj files by hand and try that way, I've used this method with no side effects. In the sln file the first lines for VS2010 will say

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

and for a VS2008 solution:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008

Also, in a 2010 project file you may find a section like

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

which will need to be modified as

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />

With only these 2 types of changes I was able to open the solution & projects with VS 2008. Of course other differences may appear but if you have time you can always use a try/fail method until you manage it.

CyberDude