Cómo: Utilizar variables de entorno al generar

Actualización: noviembre 2007

Al generar proyectos, a menudo es necesario establecer las opciones de generación utilizando información que no se encuentra en el archivo de proyecto ni en los archivos de los que consta el proyecto. Esta información se almacena normalmente en variables de entorno.

Hacer referencia a variables de entorno

Todas las variables de entorno están disponibles como propiedades para el archivo de proyecto de Microsoft Build Engine (MSBuild) .

Nota:

Si el archivo de proyecto contiene una definición explícita de una propiedad que tiene el mismo nombre que una variable de entorno, la propiedad del archivo de proyecto reemplaza el valor de la variable de entorno.

Para utilizar una variable de entorno en un proyecto de MSBuild

  • Haga referencia a la variable de entorno como si fuera una variable declarada en el archivo de proyecto. Por ejemplo, en el código siguiente se hace referencia a la variable de entorno BIN_PATH:

    <FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
    

Se puede utilizar un atributo Condition para proporcionar un valor predeterminado a una propiedad si no se ha establecido la variable de entorno.

Para proporcionar un valor predeterminado a una propiedad

  • Utilice un atributo Condition para establecer el valor de una propiedad sólo si la propiedad no tiene ningún valor. Por ejemplo, en el código siguiente se establece la propiedad ToolsPath en c:\tools sólo si la variable de entorno ToolsPath no se ha establecido:

    <ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
    
    Nota:

    En los nombres de propiedad no se distingue entre mayúsculas y minúsculas, así que tanto $(ToolsPath) como $(TOOLSPATH) hacen referencia a la misma propiedad o variable de entorno.

Ejemplo

En el archivo de proyecto siguiente se utilizan variables de entorno para especificar la ubicación de directorios.

<Project DefaultTargets="FakeBuild">
    <PropertyGroup>
        <FinalOutput>$(BIN_PATH)\myassembly.dll</FinalOutput>
        <ToolsPath Condition=" '$(ToolsPath)' == '' ">
            C:\Tools
        </ToolsPath>
    </PropertyGroup>
    <Target Name="FakeBuild">
        <Message Text="Building $(FinalOutput) using the tools at $(ToolsPath)..."/>
    </Target>
</Project>

Vea también

Tareas

Cómo: Generar los mismos archivos de código fuente con diferentes opciones

Conceptos

MSBuild

Propiedades de MSBuild