TaylorMichaelL
The paths you gave are CM paths (unless you were just using symbolic names) so they are irrelevant. The file paths are used in the PDB. So if you were to (on your build server) have the following directory layout:
c:\projects\customer projects\project1\platformassemblies
c:\projects\customer projects\project1\TheProject
Then the PDBs would refer to this path. Now, if a developer happens to have this same directory layout then the source files would be picked up automatically. If not then they will have to go point to the correct source. I believe this is a necessary evil in your case because how does a developer know what source goes with what assembly
I, in general, do not believe in putting built binaries into CM as I believe it complicates things. The only exception is third-party components which I don't build. In that case the source code is irrelevant. When I do use third-party components I tend to isolate them outside the scope of any project to: a) make it easier to update, and b) keep the size of the repository down. Here is how I'd lay out the CM system:
$/projects/Assemblies/PlatformAssemblies/v1.0.0.0/Bin
$/projects/Assemblies/PlatformAssemblies/v1.0.0.0/Source
$/projects/Assemblies/PlatformAssemblies/v1.1.0.0/Bin
$/projects/Assemblies/PlatformAssemblies/v1.1.0.0/Source
...
$/projects/Customer projects/project1/TheProject
Now the platform assemblies are isolated and a project can use the appropriate version. To ensure that all developers use the correct version, assuming you are using SourceSafe or SourceVault, then you can share the appropriate version directory with the project like so:
$/projects/Customer projects/project1/PlatformAssemblies -> Shared to $/projects/Assemblies/PlatformAssemblies/vw.x.y.z/Bin
The advantage is that if you update the version binaries the project will automatically get the update. Furthermore if you build the binaries then the path on the build server would be: c:/projects/assemblies/platformassemblies/v1.0.0.0/source so your devs just need to mimic this layout in order to get the PDBs to line up without a dialog. Finally a developer could be working on multiple projects (and versions) simultaneously without conflict.
Just my opinion. Maybe somebody else can provide a better solution.
Michael Taylor - 3/15/07
http://p3net.mvps.org