Click to Rate and Give Feedback
MSDN
MSDN Library
Visual Studio 2005
Visual Studio
Reference
MSBuild
MSBuild Concepts
Properties
 How To: Use Environment Variables i...

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2005/.NET Framework 2.0

Other versions are also available for the following:
Visual Studio
How To: Use Environment Variables in a Build

When you build projects, it is often necessary to set build options using information that is not in the project file or the files that comprise your project. This information is typically stored in environment variables.

Referencing Environment Variables

All environment variables are available to the Microsoft Build Engine (MSBuild) project file as properties.

NoteNote

If the project file contains an explicit definition of a property that has the same name as an environment variable, the property in the project file overrides the value of the environment variable.

To use an environment variable in an MSBuild project

  • Reference the environment variable the same way you would a variable declared in your project file. For example, the following code references the BIN_PATH environment variable:

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

You can use a Condition attribute to provide a default value for a property if the environment variable was not set.

To provide a default value for a property

  • Use a Condition attribute on a property to set the value only if the property has no value. For example, the following code sets the ToolsPath property to c:\tools only if the ToolsPath environment variable is not set:

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

    Property names are not case-sensitive so both $(ToolsPath) and $(TOOLSPATH) reference the same property or environment variable.

Example

The following project file uses environment variables to specify the location of directories.

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

See Also

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
IDE Note      AndrewBurns   |   Edit   |   Show History
You can not enter literal $( or ) characters in the IDE. You must edit the project file manually:
  1. Right click and unload project
  2. Open the project file and edit the XML by hand, save
  3. Reload project

Tags What's this?: Add a tag
Flag as ContentBug
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker