Comment : utiliser des variables d'environnement dans une génération

Mise à jour : novembre 2007

Lorsque vous générez des projets, il est souvent nécessaire de définir des options de génération à l'aide d'informations qui ne figurent pas dans le fichier projet ou dans les fichiers qui composent le projet. Ces informations sont stockées en général dans les variables d'environnement.

Référencement des variables d'environnement

Toutes les variables d'environnement sont disponibles pour le fichier projet Microsoft Build Engine (MSBuild) comme propriétés.

Remarque :

Si le fichier projet contient la définition explicite d'une propriété ayant le même nom qu'une variable d'environnement, la propriété du fichier projet substitue la valeur de la variable d'environnement.

Pour utiliser une variable d'environnement dans un projet MSBuild

  • Référencez la variable d'environnement de la même façon que vous déclareriez une variable dans votre fichier projet. Par exemple, le code suivant référence la variable d'environnement BIN_PATH :

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

Vous pouvez utiliser un attribut Condition pour fournir la valeur par défaut d'une propriété si la variable d'environnement n'a pas été définie.

Pour spécifier la valeur par défaut d'une propriété

  • Utilisez un attribut Condition sur la propriété pour définir la valeur, uniquement si la propriété n'a aucune valeur. Par exemple, le code suivant définit la propriété ToolsPath avec la valeur c:\tools uniquement si la variable d'environnement ToolsPath n'est pas définie :

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

    Comme les noms de propriétés ne respectent pas la casse, $(ToolsPath) et $(TOOLSPATH) référencent tous deux la même propriété ou la même variable d'environnement.

Exemple

Le fichier projet suivant utilise des variables d'environnement pour spécifier l'emplacement des répertoires.

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

Voir aussi

Tâches

Comment : générer les mêmes fichiers sources avec des options différentes

Concepts

MSBuild

Propriétés MSBuild