<

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x

"Discrepancy" error from VS 2008 after migrating from VSS 2005 to TFS 2010

Published on
11,120 Points
5,120 Views
Last Modified:
Approved
Community Pick
Megan Brooks
Retired SQL Server database developer and administrator; active MS SQL Server consultant for T-SQL, SSRS, and SSIS
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.
0
Comment
  • 2
3 Comments
LVL 16

Author Comment

by:Megan Brooks
In this article I very briefly summarized the migration process for VSS to TFS 2010 for use with VS 2008. The summary was a little too brief, though. After migrating the VSS data to TFS and installing the patches for VS 2008, it is necessary to connect Team Explorer to TFS, "map" the TFS working folder(s), and "Get latest version" from TFS (which you can do at the same time that you map). Otherwise if you have the files from VSS already loaded locally, VS 2008 continues to use VSS.

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.
0
LVL 16

Author Comment

by:Megan Brooks
If you are working on a project from more than one workstation, after fixing the project file be sure to get the latest version of it from TFS on all the other workstations. Otherwise you will continue to see the alert box on those workstations.
0

Expert Comment

by:bentoo42
We have 2 solutions and hundreds of projects.

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,\u0020HSBAAAAA
    SccLocalPath6 = Project1

solution2.sln

    SccProjectUniqueName6 = Project1\\Project1.csproj
    SccLocalPath6 = .
    SccProjectFilePathRelativizedFromConnection6 = Project1\\

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
0

Featured Post

Why Diversity in Tech Matters

Kesha Williams, certified professional and software developer, explores the imbalance of diversity in the world of technology -- especially when it comes to hiring women. She showcases ways she's making a difference through the Colors of STEM program.

Join & Write a Comment

If you, like me, have a dislike for using Online Subscription anti-spam services, then this video series is for you. I have an inherent dislike of leaving decisions such as what is and what isn't spamming to other people or services for me and insis…
I previously published an Experts Exchange video Micro Tutorial that describes how to scan documents to a PDF file using an excellent, free product called Foxit Reader: How to scan to a PDF file with free software (https://www.experts-exchange.co…

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month