Użycie zmiennych środowiskowych w kompilacji
Podczas kompilowania projektów często konieczne jest ustawienie opcji kompilacji przy użyciu informacji, które nie znajdują się w pliku projektu lub plikach składających się na projekt. Te informacje są zwykle przechowywane w zmiennych środowiskowych.
Odwołanie do zmiennych środowiskowych
Wszystkie zmienne środowiskowe, które są prawidłowymi nazwami właściwości MSBuild, są dostępne dla pliku projektu Microsoft Build Engine (MSBuild) jako właściwości. Prawidłowe nazwy właściwości są opisane we właściwościach programu MSBuild. Na przykład zmienne środowiskowe rozpoczynające się od liczby nie są dostępne w programie MSBuild.
Uwaga
Jeśli plik projektu zawiera jawną definicję właściwości, która ma taką samą nazwę jak zmienna środowiskowa, właściwość w pliku projektu zastępuje wartość zmiennej środowiskowej.
Aby użyć zmiennej środowiskowej w projekcie MSBuild
Odwołuj się do zmiennej środowiskowej w taki sam sposób, jak zmienna zadeklarowana w pliku projektu. Na przykład poniższy kod odwołuje się do zmiennej środowiskowej BIN_PATH:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
Można użyć atrybutu
Condition
, aby podać wartość domyślną właściwości, jeśli zmienna środowiskowa nie została ustawiona.
Aby podać wartość domyślną dla właściwości
Użyj atrybutu
Condition
we właściwości, aby ustawić wartość tylko wtedy, gdy właściwość nie ma wartości. Na przykład poniższy kod ustawiaToolsPath
właściwość na c:\tools tylko wtedy, gdy zmiennaToolsPath
środowiskowa nie jest ustawiona:<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
Uwaga
Nazwy właściwości nie są uwzględniane wielkości liter, więc zarówno, jak
$(ToolsPath)
i$(TOOLSPATH)
odwołują się do tej samej właściwości lub zmiennej środowiskowej.
Przykład
Poniższy plik projektu używa zmiennych środowiskowych do określenia lokalizacji katalogów.
<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>