views:

104

answers:

4

Does anyone have experience collaborating with someone using a different version of Visual Studio?

If I upgrade to VS 2008 or 2010, how hard will it be to work with someone using VS 2005?

I realize that I'll have to target .NET 2.0 or whatever in the projects we will share, but I'm more interested in how to deal with project/solution file differences.

If I update my .vcproj to VS 2008, will I not be able to check it into source control because the other person wouldn't be able to read it? If so then how do I make sure that if I add a file to my project, that their project will pick it up?

Is there some way to automate generating multiple project files for each VS version? If not what are some best practices for dealing with this situation.

+1  A: 

The easiest and simplest way that I've found is to maintain a copy of downlevel versions of Visual Studio on my machine. I've not had any problems or issues to date.

If you do want to only have 2k8 or 2k10 on your machine, then the next option is to maintain two sets of SLN/CSPROJ files in each format. Obviously this involves the risk of having to check for new files to add into the project yourself but that shouldn't be too bad if there's just two of you working on the project.

Rob
A: 

If possible, you should really try to use the same version of Visual Studio for all developers working with the same code.

The last time I was in a situation where the same project needed to be used in different versions of Visual Studio we were switching between VS 2003 and VS 2005 (building a class library targeting .NET 1.1 and 2.0). That was somewhat of a pain, since we manually needed to keep the project files in sync.

Fredrik Mörk
+1  A: 

regarding source control it's even more annoying: they have to be the exact version, release, service pack & everything else otherwise they'll have different version numbers in the project/solution files. One guy here has forgotten a service pack or something. You always know when he's checked in.

Matt Jacobsen
A: 

The way I would try to solve this is by getting the other developer to upgrade to Visual Studio 2008, as you are able to target older versions of the framework in the compiled binary is there any reason for them not to upgrade? :)

Paul
I don't think you can target ALL versions of the framework in newer versions of Visual Studio. From http://msdn.microsoft.com/en-us/library/ms246609.aspx, "Visual Studio 2008 includes version 3.5 of the .NET Framework. Visual Studio 2008 lets you choose whether projects target .NET Framework 2.0, .NET Framework 3.0, or .NET Framework 3.5." Unfortunately, that means if you're stuck working on some ancient 1.0 stuff, you can't use a newer version of Visual Studio :-(
Pandincus