0
votes

I have legacy projects bound to Visual SourceSafe and done with Visual Studio 2003. Now, I have recently installed Visual Studio 2017 and TFS in the same machine.

Now when I try to open a legacy project that is bound to Visual SourceSafe I get a sequence of errors. Below the screenshots (pixeled for confidenciality reasons).

enter image description here

enter image description here

enter image description here

It seems like when open a legacy project (bound to Visual SourceSafe) with legacy visual studio 2003, it tries to connect to the TFS server (obviously it cannot). It is happening since I have installed new Visual Studio 2017 and TFS in the same machine, it seems like they cannot live together in the same machine. So how can I keep both VSS and TFS installed in the same machine? Is it possible?

UPDATED: It seems like VS2003 does not allow to switch SCC providers. The only way is to hack the registry to switch.

I have found some interesting things that explains how to do it and it seems to work, the problem is that some links are broken, they are too old and not available anymore.

Source safe with Team Foundation Server in VS.2003 Installed TFS Version Control Provider and Now my VS 2003 Projects lost connectivity to VSS 2005? MSSCCI Provider installation error

In above links it is provided a solution that consists on hacking the registry but the link they provide is broken:

Switch SCC providers

UPDATE 2: As Edward Thomson has suggested in his answer, I have created a new key 'HKCU\Software\Microsoft\VisualStudio\7.1\CurrentSourceControlProvider\ ' and set it with a string value: ProviderRegKey="SOFTWARE\Microsoft\SourceSafe". Below screenshot, but it is not working:

enter image description here

1
Then you need to have a good reason not to upgrade, as such legacy products do have upgrade paths. In a world that virtualization is so common, I also see no reason to "install on the same machine". - Lex Li
Since "regularly upgrading software" doesn't appear to be something that's a high priority for your organization, I'd strongly recommend using Azure DevOps for source control instead of standing up your own instance of on-prem TFS. - Daniel Mann
In visual studio, believe there is an option to specify the source control provider. It is possible that the installation of TFS caused it to swap in your VS2003 copy. - Matt
@Matt Yes, but when doing this it appears a window to add tfs servers only. There is a field there to put the server name and port. If I put visual sourcesafe database name (visual sourcesafe database location) there as \\myserver\my\path\to\the\sourcesafe\database it does not work, it says not valid url.The same happens if from "change source control" window (last picture above indicated), I try to bind the server through "server binding" field column. - Ralph
@Matt ... For some reason, when trying to bind a server, only tfs servers are possible now.. cannot bind to visual sourcesafe server location. It seems like visual studio 2003 only detects a tfs provider, not sourcesafe provider... - Ralph

1 Answers

0
votes

MSSCCI is the Microsoft Source Code Control Integration API, it was the original API provided by Visual Source Safe for IDE tools like Visual Studio. Early Visual Studio versions (like 2003) only spoke MSSCCI, and expected a version control provider to provide MSSCCI. As a result, you can only have one version control provider speaking that protocol.

The Team Foundation Server client APIs provide MSSCCI (for Team Foundation Version Control only, not Git). As a result, if you want to use Visual Source Safe, you will need to configure Visual Studio to speak to that set of libraries instead of the TFS set of APIs.

In slightly more recent versions of Visual Studio (like Visual Studio 2008), you can choose your MSSCCI provider on the fly, in Options > Source Control > Plug-In Selection. All the MSSCCI providers will be enumerated and you can select between Visual Source Safe and Team Foundation Version Control.

MSSCCI Selection

If you're using an earlier version of Visual Studio that did not have this option, then you can change your MSSCCI provider by updating the registry directly.

Find the registry key:

HKCU\Software\Microsoft\VisualStudio\7.1\CurrentSourceControlProvider\ 

And set:

ProviderRegKey="SOFTWARE\Microsoft\SourceSafe"

Update 7.1 in the key with the version of Visual Studio that you have installed (Visual Studio 2003 corresponds to version 7.1.)

Once you have made this change, you will not be able to use Team Foundation Verson Control from Visual Studio 2003 without changing that back.