Condividi tramite


Procedura: utilizzare le variabili di ambiente in una compilazione

Quando si compilano progetti, spesso è necessario impostare le opzioni di compilazione utilizzando informazioni che non si trovano nel file o nei file che compongono il progetto. Tali informazioni sono generalmente memorizzate nelle variabili di ambiente.

Riferimento alle variabili di ambiente

Tutte le variabili di ambiente sono disponibili come proprietà del file di progetto di Microsoft Build Engine (MSBuild).

Nota

Se il file di progetto contiene una definizione esplicita di una proprietà che possiede lo stesso nome della variabile di ambiente, tale proprietà esegue l'override del valore della variabile.

Per utilizzare una variabile di ambiente in un progetto MSBuild

  • Fare riferimento alla variabile di ambiente come se questa fosse una variabile dichiarata nel file di progetto. Il codice riportato di seguito, ad esempio, fa riferimento alla variabile di ambiente BIN_PATH:

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

Se la variabile di ambiente non è stata impostata, per specificare un valore predefinito per una proprietà è possibile utilizzare un attributo Condition.

Per specificare un valore predefinito per una proprietà

  • Utilizzare un attributo Condition per impostare un valore su una proprietà solo se alla proprietà non è stato assegnato alcun valore. Il codice riportato di seguito, ad esempio, imposta la proprietà ToolsPath su c:\tools solo se la variabile di ambiente ToolsPath non è stata impostata:

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

    Nota

    Poiché i nomi delle proprietà non rilevano la differenza tra maiuscole e minuscole, sia $(ToolsPath) che $(TOOLSPATH) fanno riferimento alla stessa proprietà o variabile di ambiente.

Esempio

Il file di progetto riportato di seguito utilizza le variabili di ambiente per specificare il percorso delle directory.

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

Vedere anche

Attività

Procedura: compilare gli stessi file di origine con opzioni diverse

Concetti

Proprietà di MSBuild

Altre risorse

MSBuild