Это очень старый вопрос, но вот как вы это сделаете в VS2013.
Добавление константы в свойствах проекта не работает для меня.
Что работает, так это открытие файла .csproj для вашего проекта, поиск имени вашей конфигурации и добавление чего-либо в раздел «DefineConstants».
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'BO4_Production|AnyCPU'">
<OutputPath>bin\BO4_Production\</OutputPath>
<DefineConstants>TRACE;BUSINESS_OBJECTS_4</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
В этом примере, когда я нахожусь в VS2013, и я изменяю свою Конфигурацию на «BO4_Production», исходный код будет немедленно отражать это, и любые разделы будут отражать это:
#if BUSINESS_OBJECTS_4
// This is the URL of the Business Objects 4 REST services
string BaseURL = "http://BO3Server:6405/biprws/logon/long");
#else
// This is the URL of the Business Objects 3 web services
string BaseURL = "http://BO3Server:8080/dswsbobje/services/Session";
#endif
Странно, что это единственный способ сделать #define
удар, просто изменив конфигурацию.
Через несколько месяцев ...
На самом деле, отбросьте это. Даже в VS2015 я могу добавить свой условный символ в либо на вкладке "Сборка", либо непосредственно в файле .csproj, но некоторые проекты в моем решении просто ошибаются . Например, у них есть мой определенный символ, когда для этой конфигурации он не должен быть определен. (Я проверил окно Configuration Manager, и все настроено правильно, но VS2015 иногда не работает правильно ..)