Создание нескольких версий проекта в Visual Studio с использованием конфигураций сборки
Мне нужно создать несколько версий моего проекта, используя конфигурацию, как мы делаем с #define
, #if
, #endif
,
Недостатком использования этих директив препроцессора является то, что мне нужно определять символы почти в каждом файле проекта, но я хочу справиться с этим в своих конфигурациях сборки.
Я даже не уверен, помогут ли мне конфигурации сборки.
Что я хочу, если я создаю конфигурацию с именем "Разработка" и другой с именем "QA", мой код будет выглядеть так:
if #Development or if $QA
Пожалуйста, направьте меня к достижению этого.
2 ответа
Configuration Manager существует по этой причине.
- Перейдите в Configuration Manager и создайте копию новой конфигурации из предопределенной конфигурации DEBUG.
- Назовите конфигурацию РАЗРАБОТКА и примените ко всем проектам
- Выберите в качестве активной конфигурации конфигурацию РАЗРАБОТКИ (уже должна быть активной)
- Перейти на страницу свойств каждого проекта, требующего
#if DEVELOPMENT
условно скомпилируйте и вставьте символ РАЗВИТИЯ в первое текстовое поле вкладки СТРОИТЕЛЬСТВО
Теперь каждый ваш проект может использовать директиву препроцессора #if DEVELOPMENT
Если вам это нужно также для RELEASE, повторите описанные выше шаги, но скопируйте из предопределенной конфигурации RELEASE и введите другое ИМЯ.
Теперь переключение из конфигурации с определенным символом РАЗВИТИЯ или без него можно выполнить непосредственно из комбинированного инструмента "Конфигурации решений", представленного на стандартной панели инструментов Visual Studio, без редактирования каждого проекта.
Вы также можете просмотреть статью MSDN Как: создавать и редактировать конфигурации
В дополнение к решению Михаила Фрейдгейма вы можете использовать атрибут conditional
для центральных операций инициализации или других пустых функций:
[Conditional("DEVELOPMENT")]
public static void InitDemo()
{
Models.LogFile.ErrorLog("This is a Development Version!");
// init settings
}
Найдено здесь: http://msdn.microsoft.com/de-de/library/4xssyw96%28v=vs.80%29.aspx