What does binding do to *.csproj and *.sln?

This forum is now locked, since Gold Support is no longer offered.

Moderator: SourceGear

Locked
Tri
Posts: 288
Joined: Wed Dec 22, 2004 11:10 am

What does binding do to *.csproj and *.sln?

Post by Tri » Fri Jul 22, 2005 12:11 pm

Client + Server 3.07

After moving a solution to a new repository. From within VS2003, Open from Source control, we have had some issues on a few projects:

1- Some projects have Invalid binding to Source Control:

The *.sln file show that the projects having invalid binding have absolute Vault path in their description. Example:
SccProjectUniqueName12 = MyDataLayer\\MyDataLayer.csproj
SccProjectName12 = $/Projects/myDept/Code/MyDataLayer
SccLocalPath12 = MyDataLayer
CanCheckoutShared = false

While other projects listed in the *.sln have the following description:

SccProjectUniqueName5 = MyBusinessComponent\\MyBusinessComponent.csproj
SccLocalPath5 = .
CanCheckoutShared = false
SccProjectFilePathRelativizedFromConnection5 = MyBusinessComponent\\


2- Binding info are different between the project and the solution.

The offending projects have absolute Vault path in their *.csproj. Example:

<CSHARP
ProjectType = "Local"
ProductVersion = "7.10.3077"
SchemaVersion = "2.0"
ProjectGuid = "{710F5F88-8F0B-40DF-978A-49D1827DE69B}"
SccProjectName = "$/Projects/myDept/Code"
SccLocalPath = ".."
SccProvider = "MSSCCI:SourceGear Vault Client"
>

Other *.csproj have the following pattern:

<CSHARP
ProjectType = "Local"
ProductVersion = "7.10.3077"
SchemaVersion = "2.0"
ProjectGuid = "{D25D9C34-1FC5-49C1-95CC-92965B896A6A}"
SccProjectName = "SAK"
SccLocalPath = "SAK"
SccAuxPath = "SAK"
SccProvider = "SAK"
>

Please note that the projects having issue #1 also have issue #2. But we also have projects having only issue #2.

Questions:
Q1. What are the reasons for VS2003 to store absolute Vault paths in *.sln and *.csproj for certain projects?

Q2. What is the proper way to fix this issue, without editing the *.sln and *.csproj files manually outside of VS2003.

Q3. Web projects always reference absolute Vault path in the *.sln file. What is the recommended procedure to move the solution in another Vault folder (or Vault repository)?

Q4. What are "SAK"? I see a lot of these ~sak files in the "Obliterate" windows. Are they created at each Unbind or Rebind?

Sorry for the long post. Thank you very much in advance for your help.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Fri Jul 22, 2005 3:17 pm

Sometimes binding info is stored in both the project/solution files and in MSSCCPRJ.SCC. In other cases, SAK is used to denote that the project is bound and the binding info is outside of the solution in the MSSCCPRJ.SCC file. ~sak are temporary SAK files.

See this link for more details:
http://groups-beta.google.com/group/mic ... e310cd44ec

If you want to move a solution which is bound to one repository into a different repository, I'd suggest using Change Source Control to unbind the solution. Then use "Add Solution to Source Control" to add it to the new repository.

You should also be able to Change Source Control and rebind a solution that is already in the new repository but is having binding problems.

Regarding moving projects around in Vault, again, unbind, make your moves, then rebind to the proper locations.
Linda Bauer
SourceGear
Technical Support Manager

Locked