Я успешно использую переменные окружения и условная компиляция . MSBuild может легко переводить переменные окружения в символы препроцессора, которые вы можете использовать в своем коде. Ваш MSBuild-файл должен содержать такой перевод:
<PropertyGroup Condition="'$(ENVIRONMENT_VARIABLE)' != '' ">
<DefineConstants>$(DefineConstants);ENVIRONMENT_VARIABLE</DefineConstants>
</PropertyGroup>
То, что делает этот фрагмент, проверяет наличие ENVIRONMENT_VARIABLE
, а затем добавляет эту переменную в существующий список DefineConstants
, который указывает MSBuild, какие символы определить для компиляции.
Определение переменной среды только на вашем сервере сборки / или только на ваших блоках разработчика (в зависимости от того, что проще) - это очень простой и гибкий способ достижения простой конфигурации. Если вам нужны более продвинутые стратегии, лучше всего использовать файлы конфигурации. Но будьте осторожны с введением различных комбинаций сборок, обычно они создают много накладных расходов и дают шанс случайно сломать сборку.
По возможности избегайте этого.