2010-10-20 12 views
16

Cuando selecciono la configuración "Depurar", la constante DEBUG está activa. Cuando selecciono la configuración "Liberar", la constante DEBUG está inactiva.¿Cómo creo mis propias constantes definidas basadas en el "Administrador de configuración"?

¿Cómo puedo crear mis propias configuraciones para que incluyan mis propias constantes definidas. Básicamente, lo quiero para que, si selecciono la configuración "FOOBAR", haya una constante FOO y BAR en mi proyecto activo.

Básicamente estoy tratando de evitar poner un montón de #define FOO en mis proyectos, luego comentar/descomentarlos cuando los necesito/no los necesito.

Respuesta

17

De acuerdo con this article puede definir constantes de compilación en la pestaña de compilación de las propiedades de su proyecto.

enter image description here

EDITADO: Para definir configuraciones de construcción se puede ir a Construir> Gestor de Configuración y creo que se puede definir constantes de compilación allí también.

+0

Ah, está bien. Una pregunta, ¿cómo se definen constantes múltiples? Básicamente, ¿cuál es el separador? –

+1

@myermian: Intentaría el punto y coma ';' –

+2

El separador es ',', no ';'. Por lo tanto, debe ingresar 'FOO, BAR' para establecer las constantes' FOO' y 'BAR'. – broslav

0

continuación he resumido cómo crear una nueva configuración de generación (digamos TEST_BUILD) aparte de depuración/release construir y cómo definir un compilación condicional bajo una nueva configuración de generación?

Vaya a Build -> Configuration Manager -> seleccione "Nuevo" -> escriba TEST_BUILD y seleccione la configuración de copia desde -> Vacío -> presione OK.

  • aquí hay que configurar manualmente todas las nuevas configuraciones para todos y cada uno los proyectos bajo su archivo de solución.
  • Como alternativa, puede copiar una configuración de depuración o liberación de compilación en su nuevo TEST_BUILD además de TEST_BUILD configuraciones de compilación específicas.

    Paso 1: copie la configuración existente a su nueva configuración de compilación:
    ajuste de copia desde -> -> presione OK. [o]
    configuración de copia desde -> -> presione OK.

    Paso 2: definir una macro:

    Goto Propiedades -> Propiedades de configuración -> C/C++ -> preprocesador -> preprocesador Definiciones -> Definir/Añadir TEST_BUILD

    Paso 3: Activar/desactivar el parte del código utilizando la macro TEST_BUILD

1

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í.

enter image description here

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 ...)

+0

¿Podría ser simplemente que, como la modificación de las configuraciones no obliga a los archivos a recompilarse, se encuentra con un símbolo definido en algunos archivos pero no en otros? – Lolo

Cuestiones relacionadas