In Source control (SC), when you check in your solution, it does not check in any dll's (i think this is default behaviour).
Well how does this effect you? It may affect how you handle your project external references (any dll built outside the solution, but not stored in the GAC). These dlls are on your computer. When a team member gets the latest verison from SC, inorder to add to the solution. They will need a copy of these referenced dll's, as the dll's are not saved in SC.
So what does SC do? depending on your project type SC will add an expected ("relative") path, for where it should be able to find the referenced dlls. Upon a developer opening the solution it will check this location for the dll and import it.
Where is this expected Path kept?
For projects which include a Proj file, it will be located in the proj file (shown a little later)
For a Website (not Webapp, as that has a proj file) the bin directory will contain a dll.refresh file for each referenced file.
EXAMPLES....
Here is my Simple solution (I have added this to SC already)
I add a reference to an External dll (rsnWrapper, this project is located in the same workspace)
Note, it looks like noramal, but when I check this in, that Dll will not be placed into SC, only the project file will contain a reference of where to find that file. (Note the Hint Path)
<ItemGroup>
<Reference Include="RsNWrapper, Version=1.0.3037.19379,
Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\RsNWrapper\RsNWrapper\bin\Debug\RsNWrapper.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
For a Web Site project it has a dll.refresh file (shown below), which is a text file, that contains the location.
if you open this in notepad you will see the link
Suggestions,
dll's generated from a solution in the same workspace is fine, any developer which can download all the same projects from SC into his\hers workspace will have the same folder structure as you. All he\she will have to do is compile the other project first (rsnWrapper in my exmaple case).
if the dll is from a projet not in SC, then you will have to make sure that you have the dlls shared between people on your team, and that they place the dll;s in the correct location, which will be relitive to the workspace.
A good reference:
http://weblog.xanga.com/monsur/437206798/dllrefresh-and-aspnet.html