Usare le variabili di ambiente in una compilazione
Quando si compilano i progetti, spesso è necessario impostare le opzioni di compilazione usando informazioni non incluse nel file di progetto o nei file che costituiscono il progetto. Queste informazioni sono in genere archiviate nelle variabili di ambiente.
Fare riferimento alle variabili di ambiente
Tutte le variabili di ambiente che sono nomi di proprietà MSBuild validi sono disponibili per il file di progetto Microsoft Build Engine (MSBuild) come proprietà. I nomi di proprietà validi sono descritti nelle proprietà di MSBuild. Ad esempio, le variabili di ambiente che iniziano con un numero non sono disponibili in MSBuild.
Nota
Se il file di progetto contiene una definizione esplicita di una proprietà con lo stesso nome di una variabile di ambiente, la proprietà nel file di progetto esegue l'override del valore della variabile di ambiente.
Per usare una variabile di ambiente in un progetto MSBuild
Fare riferimento alla variabile di ambiente esattamente come a una variabile dichiarata nel file di progetto. Il codice seguente, ad esempio, fa riferimento alla variabile di ambiente BIN_PATH:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
È possibile usare un attributo
Condition
per fornire un valore predefinito per una proprietà se la variabile di ambiente non è stata impostata.
Per fornire un valore predefinito per una proprietà
Usare un attributo
Condition
in una proprietà per impostare il valore solo se la proprietà non ha un valore. Il codice seguente, ad esempio, imposta la proprietàToolsPath
su c:\tools solo se la variabile di ambienteToolsPath
non è impostata:<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
Nota
Per i nomi delle proprietà non viene rilevata la distinzione tra maiuscole e minuscole, quindi sia
$(ToolsPath)
che$(TOOLSPATH)
fanno riferimento alla stessa proprietà o variabile di ambiente.
Esempio
Il file di progetto seguente usa 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>