After installing Visual Studio 2010 (see my tip on that
here) and migrating Visual SourceSafe 2005 to Team Foundation Server 2010, I needed to connect my remaining Visual Studio 2008 solutions (the ones that are really SQL Server 2008 Business Intelligence Design Studio projects) to also use TFS 2010. I found the VS 2008 Team Explorer download and applied VS 2008 SP1 and the TFS 2010 forward compatiblity patch (supplied on the TFS 2010 DVD) to it so that everything worked.
I often work remotely over VPN and converting to TFS 2010 yielded a big performance improvement (even though I was using the VSS LAN accelerator previously). The only problem was that now every time I opened a a VS/BIDS 2008 solution an alert box with the following message popped up:
There appears to be a discrepancy between the solution's source control information about some project(s) and the information in the project file(s).
To resolve this discrepancy it will be necessary to check out the project file(s) and update them. If the check out fails, however, and the solution is closed without saving, you will see this warning again the next time you open this solution.
OK, fine. The check out did not fail. I saved the solution before closing it. And the warning continued to pop up every time I opened the solution again.
I noticed that some or all of the project files in the solution were indeed being checked out, and I surmised that there was something in those project files that needed to be updated. I also noticed that when I checked them back in, TFS reported that nothing had changed and proceeded to simply undo the changes.
That would be OK if no changes were needed, but changes
were needed. The way I finally resolved it was to identify each project that was being checked out,
right click the project name, change something (anything! -- almost) in the project properties so as to "dirty" it, change that property right back to what it was again, and then close the properties dialog, save, and check in the project.
Once the project properties were dirtied, VS 2008 fixed whatever it was bothering it and the annoying alert box no longer appeared; nor did any automatic checkouts occur.
If you do this, you
do need to change a project property that is something that is actually stored in the project file. You can tell by checking the project back in and then making the change and changing it back and closing the project properties dialog. If changing/changing back causes the project file to check out then you got it. Otherwise try another property. Exactly what you change will depend upon what kind of project it is.
Comments (3)
Author
Commented:My main intent in this article wasn't really to describe how to do the migration itself, but I don't want to create any confusion by leaving out major steps.
Author
Commented:Commented:
I migrated from VS 2008 SP1 to VS 2010 SP1 and was also receiving the error:
There appears to be a discrepancy between the solution's source control information . . .
I would open solution1, allow it to update the projects, then open solution2, only to get this error again.
I analyzed the solution files and found the following:
Root Cause:
solution1.sln and solution2.sln files are inconsistent with each other in regards to the project source control bindings.
Example:
solution1.sln
SccProjectUniqueName6 = Project1\\Project1.csproj
SccProjectName6 = \u0022$/Project1\u0022,\u0
SccLocalPath6 = Project1
solution2.sln
SccProjectUniqueName6 = Project1\\Project1.csproj
SccLocalPath6 = .
SccProjectFilePathRelativi
Solution:
I fixed this issue by manually modifying the solution files to be consistent in notepad. I copy and pasted the source control info from solution1.sln into solution2.sln for projects they had in common.
I eventually wrote a small utility to automate this.
https://github.com/bentoo/MergeSolutionSourceControl