Binding a solution to both SOS and VSS

A collection of information about SourceOffSite, including solutions to common problems.

Moderator: SourceGear

Post Reply
Posts: 250
Joined: Tue Dec 30, 2003 10:13 am

Binding a solution to both SOS and VSS

Post by corey » Wed Jun 02, 2004 1:01 pm

In older versions of SourceOffSite (SOS) and Visual SourceSafe (VSS), when a solution within Visual Studio 2003 or 2005, was bound to source control, the binding information was stored directly inside of the .sln and .proj files, making it extremely difficult for a team of developers to jointly work on a solution when half of the team used integrated VSS and the other half used integrated SOS.

However, for non-web projects1, this problem has been resolved in the latest versions of both products - SOS 4.0 and VSS 6.0c, 6.0d and VSS 2005. When a new solution is created and added to source control from within Visual Studio using either SOS 4.0 or VSS 6.0c or later, all binding information is kept locally on the developer's machine in files named MSSCCPRJ.SCC. Within the .sln and .proj files of the solution, the source control binding information simply uses the notation "SAK" to denote that the project is currently bound. If the solution was added to VSS by a developer using integrated VSS inside of Visual Studio, another developer on a different machine using integrated SOS can correctly retrieve the project from within Visual Studio by using the "Open from Source Control" menu (the solution's files should NOT already exist in the working directory), and vice versa.

However, if the solution was originally added to source control using an older version of SourceSafe, then the binding information will already be written inside of the .sln and .proj files, and will need to be removed before the solution can be shared by both SOS and VSS developers. To remove the old binding information, follow these steps:

1. Be sure to check in any changes you have currently made to the solution.

2. Using integrated VSS (6.0c or later), Check Out the solution (.sln) and project (.proj) files for editing.

3. Under the Source Control menu of VS.NET, select the "Change Source Control" menu.

4. In the resulting dialog, select the solution and all projects and then press the Unbind button. This will unbind the solution from source control and remove all binding information from within the .sln and .proj files.

5. Close the dialog.

6. Again, under the Source Control menu of VS.NET, select the "Change Source Control" menu.

7. In the resulting dialog, select the solution and all projects and then press the Bind button. This will rebind the solution to source control, but will write all binding information to the external MSSCCPRJ.SCC files instead of within the .sln and .proj files.

8. Close the dialog.

9. Check in the modified .sln and .proj files.

At this point, developers using either integrated SOS or VSS should now be able to correctly work with the solution, as described above.
1 Note on web projects: Visual Studio is supposed to store source control specific information outside of the solution file in files called MSSCCPRJ.SCC, but this is not true with web projects. Unfortunately, until Microsoft addresses this problem, teams trying to use both VSS and SOS will have the problem you are seeing.

The only workaround would be for your SOS (or VSS) users to keep their own renegade copy of the solution file and not check it into SourceSafe.

Post Reply