I have just taken over the maintenance of a project. It is a VS2010 solution which in amongst its projects includes a C++ project. The whole solution is kept in TFS 2010 as a source control system.
Now whenever I open the solution VS2010 presents me with this annoying dialog;
Visual C++ found a suitable location to store its browsing database and IntelliSense files
for the solution
"C:\***\****x.sln."
Visual C++ examined the folder "C:\***\A***LL."
This folder is not suitable because of the following:
The browsing database in this directory has the read-only attribute and cannot be written to.
The directory is on a local drive.
Because a 'Fallback Location' was not specified in the C++ Advanced Options, Visual C++ is
attempting to use your temporary directory.
Visual C++ examined the folder "C:\Users\***\AppData\Local\Temp\VC++\c****-57e7d5e2." This folder is suitable because of the following:
The directory is on a local drive.
The 'Fallback Location' is configurable under C++ Advanced Options.
Press OK to use this location.
It looks like this is caused by the C++ solutions *.SDF file being under source control, meaning when the solution is opened (despite being under source control) its read only hence the read only bit of the dialog.
So my question is whats the best practice for a C++ project under TFS source control?
or Is there a better way that lets VS2010 know the SDF file is under source control so it can automatically check it out when it opens the project?
I can only recommend to exclude the sdf from source control. You have no benefit from versioning it, since it's generated every time something changes, which will be almost everytime. As an mantra one could say, that you should never versioning binary files unless it's absolutely necessary to share them (eg. icons and images that are needed).