How to prevent Visual Studio from reformatting my resource (*.rc) file? - visual-studio-2010

I am currently maintaining an MFC C++ project with a legacy version in Visual Studio 6 and an updated version that we've converted to work with visual Studio 2010. Feature/bug changes in one version or the other are being merged via SVN to the other.
A problem we're having is that one or the other versions of VS is reformatting the .rc file which means during some merges the diff makes it look like almost every line of the file has changed.
Is there a way to turn off or control how this auto-formatting of the resource file so that it is changed only in places where there are real changes?

Related

When did Visual Studio replace $PROJECT.filters with $PROJECT.vcxproj.filters?

I've recently noticed some $NAME.vcxproj files in our repo which have accompanying $NAME.filters files (Some, but not all, have $NAME.vcxproj.filters files too.) These filter files are not updated when new files are added/removed to the project, and Visual Studio doesn't seem to interact with them in any way.
I suspect they were created by an earlier version of Visual Studio, and that a subsequent version upgrade changed the default to .vcxproj.filters and started ignoring the old filter files. But I can't tell when this happened.
Which version of Visual Studio was the last one to generate/interact with $NAME.filters files? Did any version work with both these and the newer .vcxproj.filters files?

How to stop Microsoft Visual Studio from complaining when missing multiple projects from solution file

I am working with Microsoft Visual Studio and have a problem when opening a solution file. The solution file consists of a core project and multiple plugin projects. During development, there may be instances where every plugin project is not extracted with the core.
When opening this solution file during development, Visual Studio will complain about missing plugin projects and will have a separate pop-up window for each missing project. Is there some setting in Visual Studio to turn off this warning? Ideally, I do not want to have multiple instances of the solution file or create a script to modify the solution file every time a new project is extracted from our repository. I looked through all of the settings and could not find a flag or warning to turn off.
You might have build the project in the previous version (i.e 2008) and trying to open in the newer version (i.e 2010).

Work with VS 2010 on a project for VS 2005

I have a project on SourceSafe that the team work with VS 2005.
I have installed VS2010 and like some features of this version.
Is there a way that I keep the project to day with SourceSafe, but however work locally with VS2010.
Say, I could not add new files to solution, but at least obtain, modify and archive the existing ones.
You can update all of the source files pretty safely unless you're adding code that is new since VS 2005. The main difference between the VS versions is in the project, and the solution files. What you can do is make your local project and solution files writable, and then use your source control to modify the source files. When all is said and done though you'll want to build it in 2005 (with the SourceSafe versions of the project and solution files) to make sure it all still works.
Also note that the conversion utility in Visual Studio that converts projects from previous VS versions is only intended to convert projects from the previous version. Since VS 2010's previous version is VS 2008 and not VS 2005 you may have to perform manual changes on your solution and project settings to get everything to build. The main thing that comes to mind is how global include directories are handled. If you have access to VS 2008 convert it to that first, and then to VS 2010.
Besides targetting the 2.0 framework VS2010 will still let you use new language features so you have to be careful.
And as Ben Burnett said, the sourcesafe binding doens't have to be a problem as long as you don't check out project and solution files. You can remove the read only flag from them so VS2010 can edit them, but they don't need be be checked into sourcesafe.
But I really wonder which feature you like so much about VS2010 that you want to restrict yourself to not be able to add, remove or rename files from your project.

Visual Studio 2010 (beta 2) solution in Visual Studio 2008

Is there a way to open a solution-file saved in Visual studio 2010 beta 2 in Visual studio 2008?
... or maybe a way to convert it?
When i tried to open it in VS 2008 i get an error saying "The selected file is a solution file, but was created by a newer version of this application and cannot be opened."
If you open up the .csproj file in a text editor (it's just XML) you'll see a line like:
<ProductVersion>9.0.30729</ProductVersion>
(this is from a VS 2008 project)
The first line of a 2008 .sln file reads as follows:
Microsoft Visual Studio Solution File, Format Version 10.00
The 2010 version numbers will be different - just change them to these values (or the ones you get from creating a new 2008 project on your system).
Just take a backup of the files first.
It is not a supported scenario to open a .sln file created with 2010 in 2008. This is true for trying to open any .sln file saved in a newer version of Visual Studio with an older one.
What you can do is open up the .sln file in notepad and decrement the version number by 1. This will allow you to open the .sln file but the operation will still likely fail as you'll have to convert all of the projects as well.
I fought with this very problem today. What I did was create a VS2008 project and simply added in the files from the other project. Most code written in 2010 really doesn't use 2010 features--at least for the code I was looking at it imported the files without any problems.
Visual Studio's project and solution files are plain text.
You need to open the .sln and .csproj files in a text editor, compare the VS2010 versions to VS2008 versions, and modify the version numbers to match.
You'd have to compare the .sln and .*proj files schemas between the versions. I know that the structure is dramatically different from 2003 to 2008. In the end, you are better off creating a new project and copying the files over between the two
Why not create a new VS2008 solution manually and add in the source code instead of hacking at the .sln file. Remember VS2010 is early beta and not ready and the timeline for release has been pushed back due to the growing number of people complaining about it.
Hope this helps,
Best regards,
Tom.
While what other users have stated is true, if the project contains or (may not be 100% exact but look for something along those lines)
You will need to remove them as the syntax for 3.5 client, and 4.0 client is different in VS2010, than in 2008.

Developers with VS 2005 and VS 2008 working on the same project(s)

We have a solution that has a website and a class library. We also have developers working in VS 2005 and VS 2008. The issue is when a user adds a file/removes a file from the class library it doesn't get added to the project file for the user(s) using the other version of VS. Also I had to setup our automated build to use one project file. Is there a way to work around this or do we need to upgrade everyone to 2008?
Working with two different version of Visual Studio in a team of more than one project member absolutely makes no sense. I recommend to downgrade to Visual Studio 2005 or upgrade to Visual Studio 2008. You can install several versions of Visual Studio on the same machine with no side effects.
You will need to keep each solution file on the same visual studio version. It's ok to split up your product into several solutions though. In this case you may have 1 .sln file that holds your 2005 projects and 1 .sln that holds your 2008 projects.
As you mentioned there is no automatic way to keep a 2005 and a 2008 project in sync, because when you add a file to one of the projects, the other one won't have that new file. Likewise when you remove files.
Maybe you should downgrade to VS 2005 - since I'm working now on a project using VS08 and every now and then the paths of the referenced dlls get mixed up and the dlls are lost - or we have the same problem you just described that files that were added from one user are not in the project file for the next one after an update.
I'm not sure about "Web Site" (rather than "Web Application") projects, but generally you don't need different project files for 2005 and 2008. You only need separate solution files.
Just open your 2005 project in 2008 and allow it to upgrade your solution/projects. You may get a dialog asking you to update CLR versions, just say no.
Once you've got a working 2008 solution, copy the *.sln file to another name (I call my copy *.2005.sln), open the copied *.sln file in notepad, or your favourite text editor. Find "Format Version 10.0" on the 2nd line, and change to "Format Version 9.0". Save the file.
That's it, your upgraded solution file works in VS 2008, and the one you copied and changed works in VS 2005.
There's one extra step if you've got Web Application Projects. In the Web Application's vbproj or csproj file, find the line:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="" />
and replace that one line with these two:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />
Those two lines will conditionally select the correct MSBuild path depending on the version of VS used.

Resources