I have a project that adds some extensibility to another application through their API. However, I want to be able to use the same project for multiple versions of their application, because most of the code is the same.
However, each version of the application requires a reference to the proper assembly for that version of the software. They load their assemblies into the GAC, so even if I could specify the version of the assembly to use based on build configuration I would be fine. Is there a way to do this from inside of VS or do I need an external build tool?
You can replace the hint path with the properties:
$(Configuration) is equivalent to Release/Debug or whatever other configuration you have. $(Platform) is equivalent to x86/x64/Any CPU
If your configuration includes Any CPU then you will need to put single quotes around $(Configuration)
Also refer to the condition options referenced by adrianbanks
There is a way to do this, but you will have to hand edit your project files. The project files can have a
Condition
attribute applied to them in many of the elements, including the one for references.You can add these to your references to specify when the reference should be used:
You then define several build configurations (
V1
,V2
,V3
) and each reference will be included only in the relevant chosen build configuration.Combine this with conditional compilation symbols and
#if
statements in your code and you should be able to do what you want.A thing to be careful of if you do this is that it is easy to have Visual Studio remove the conditional attributes from the project file.