The answer by WaffleSouffle is definitely the best if you use a Release- and a Debug-folder, as the original question states.
There seems to be another option that is not so obvious because VS (VS2010) does not show it in the IntelliSense when editing the csproj-file.
You can add the condition to the HintPath-element. Like this:
<Reference Include="MyLib">
<HintPath Condition="'$(Configuration)'=='Release'">..\lib\MyLib.dll</HintPath>
<HintPath Condition="'$(Configuration)'=='Debug'">..\lib\Debug\MyLib.dll</HintPath>
</Reference>
I found an article by Vivek Rathod describing the above approach at http://blog.vivekrathod.com/2013/03/conditionally-referencing-debug-and.html.
I checked the XMS Schema file for the project file at:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild\Microsoft.Build.Core.xsd
and:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild\Microsoft.Build.Commontypes.xsd
I cannot see that Condition is a supported attribute for the HintPath-element, but it does seem to work.....
EDIT 1:
This does not make the reference show up twice in Visual Studio which is an issue with the accepted answer.
EDIT 2:
Actually, if you omit the HintPath alltogether Visual Studio will look in the projects output folder. So you can actually do this:
<Reference Include="MyLib">
<!-- // Removed HintPath, VS looks for references in $(OutDir) -->
</Reference>
The search order is specified in the file Microsoft.Common.targets
See:
HintPath vs ReferencePath in Visual Studio