Usar variables de entorno en una compilación
Al compilar proyectos, a menudo es necesario establecer las opciones de compilación mediante información que no está en el archivo del proyecto o en los archivos que componen el proyecto. Normalmente, esta información se almacena en variables de entorno.
Referencia a variables de entorno
Todas las variables de entorno que son nombres de propiedad de MSBuild válidos están disponibles para el archivo de proyecto Microsoft Build Engine (MSBuild) como propiedades. Los nombres de propiedad válidos se describen en las propiedades de MSBuild. Por ejemplo, las variables de entorno que comienzan con un número no están disponibles en MSBuild.
Nota
Si el archivo del proyecto contiene una definición explícita de una propiedad que tiene el mismo nombre que una variable de entorno, la propiedad en el archivo del proyecto invalida 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 del mismo modo que lo haría con una variable declarada en el archivo del proyecto. Por ejemplo, el código siguiente hace referencia a la variable de entorno BIN_PATH:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
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
en una propiedad para establecer el valor solo si la propiedad no tiene ningún valor. Por ejemplo, el código siguiente establece la propiedadToolsPath
en c:\tools solo si la variable de entornoToolsPath
no está establecida:<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
Nota:
Los nombres de propiedades no distinguen mayúsculas de minúsculas, por lo que
$(ToolsPath)
y$(TOOLSPATH)
hacen referencia a la misma propiedad o variable de entorno.
Ejemplo
El siguiente archivo del proyecto utiliza variables de entorno para especificar la ubicación de los 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>