Esta es una pregunta muy antigua, pero así es como lo harías en VS2013.
Agregar una constante en las propiedades del proyecto no funciona para mí.
Lo que hace el trabajo es abrir el.archivo csproj para su proyecto, encuentre su nombre de configuración y agregue algo a la sección "DefinirConstantes".
<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>
En este ejemplo, cuando estoy en VS2013 y cambio mi configuración para "BO4_Production", el código fuente se reflejará inmediatamente el presente, y cualquier sección reflejará esta:
#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
Es Es extraño que esta sea la única forma de hacer un #define
, simplemente cambiando la configuración.
Unos meses más tarde ...
En realidad, el desguace de eso. Incluso en VS2015, puedo agregar mi símbolo condicional en la pestaña "Crear" o directamente en el archivo .csproj, pero algunos de los proyectos en mi solución solo lo entiendo mal. Por ejemplo, tienen mi símbolo definido, cuando para esa configuración, no debe definirse. (Comprobé la ventana del Administrador de configuración, y todo está configurado correctamente, pero el VS2015 simplemente no funciona bien a veces ...)
Ah, está bien. Una pregunta, ¿cómo se definen constantes múltiples? Básicamente, ¿cuál es el separador? –
@myermian: Intentaría el punto y coma ';' –
El separador es ',', no ';'. Por lo tanto, debe ingresar 'FOO, BAR' para establecer las constantes' FOO' y 'BAR'. – broslav