I've downloaded a number of 3rd party libraries (dlls) now for Visual Studio 2010/C# and I've noticed that in their distributions \bin directory they usually have two versions Debug and Release.
Is there a way to add these libraries as references to the project, but use the Release build (when I'm building a release), and use the Debug build (when I'm debugging)?
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:
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:
The search order is specified in the file Microsoft.Common.targets
See: HintPath vs ReferencePath in Visual Studio
You can edit the csproj file manually set the Condition attribute on the ItemGroup containing the reference.
See this article for a bit more information.
Yes, but probably not natively inside VS2010. You can edit the .csproj file and use Condition attributes to create the references to Release or Debug.
or