Verwenden von Umgebungsvariablen in einem Build
Wenn Sie Projekte erstellen, ist es oft erforderlich, Buildoptionen mithilfe der Informationen festzulegen, die sich nicht in der Projektdatei oder in den Dateien befinden, aus denen Ihr Projekt besteht. Diese Informationen werden normalerweise in Umgebungsvariablen gespeichert.
Verweisen auf Umgebungsvariablen
Alle Umgebungsvariablen, die gültige MSBuild-Eigenschaftsnamen sind, stehen der Microsoft Build Engine (MSBuild) Projektdatei als Eigenschaften zur Verfügung. Gültige Eigenschaftennamen werden in MSBuild-Eigenschaftenbeschrieben. Umgebungsvariablen, die mit einer Zahl beginnen, sind beispielsweise in MSBuild nicht verfügbar.
Hinweis
Wenn das Projekt eine Eigenschaftsdefinition enthält, die denselben Namen wie eine Umgebungsvariable hat, wird der Wert der Umgebungsvariablen von der Eigenschaft im Projekt überschrieben.
Verwenden einer Umgebungsvariable in einem MSBuild-Projekt
Verweisen Sie auf die gleiche Art auf Umgebungsvariablen wie auf eine Variable, die in der Projektdatei deklariert ist. Beispielsweise verweist der folgende Code auf die Umgebungsvariable BIN_PATH:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
Sie können ein
Condition
-Attribut verwenden, um einen Standardwert für eine Eigenschaft anzugeben, wenn die Umgebungsvariable nicht festgelegt wurde.
Gibt den Standardwert für eine Eigenschaft an
Verwenden eines
Condition
-Attributs für eine Eigenschaft, um einen Wert festzulegen, nur wenn die Eigenschaft keinen Wert hat. Im folgenden Code wird z.B. dieToolsPath
-Eigenschaft nur auf c:\tools festgelegt, wenn dieToolsPath
-Umgebungsvariable nicht festgelegt ist:<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
Hinweis
Eigenschaftennamen unterscheiden keine Groß-/Kleinschreibung, sodass jeweils
$(ToolsPath)
und$(TOOLSPATH)
auf die gleiche Eigenschaft oder Umgebungsvariable verweisen.
Beispiel
Die folgende Projektdatei verwendet Umgebungsvariablen, um den Speicherort von Verzeichnissen anzugeben.
<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>