Как условно ссылаться на DLL на основе символа компиляции?
Visual Studio 2013.
У меня есть внешняя DLL, на которую я ссылаюсь в файле csproj:
<ItemGroup>
<Reference Include="NameOfDll">
<HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
</Reference>
Я хочу, чтобы эта ссылка функционировала, когда символ компилятора существует и не функционирует, когда этот символ компилятора не существует. (Чтобы ответить на первый комментарий, ниже, скажем, символ компилятора называется Fred.)
Этот вопрос
[Условная ссылка]
заставило меня подумать, что я могу добавить атрибут "Условие в ссылочный элемент", показанный выше, но я не могу определить, какое значение даст этот атрибут для выполнения того, что я хочу.
Я был бы очень рад, если вам будет предоставлен способ сделать это в VS UI, но я возьму любой метод.
Ответы
Ответ 1
Символы условной компиляции находятся в свойстве DefineConstants
MSBuild. Убедитесь, что это содержит ваш символ:
<Reference Include="NameOfDll" Condition="$(DefineConstants.Contains('Fred'))">
<HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
</Reference>
Выберите отличительное имя для символа. Не то, что может быть подстрокой другой константы, такой как Debug или Trace.