Gewusst wie: Verwenden von Umgebungsvariablen in einem Build
Bei der Projekterstellung ist es oft erforderlich, Buildoptionen unter Verwendung von Informationen festzulegen, die nicht in der Projektdatei bzw. in den Dateien enthalten sind, die das Projekt umfassen. Diese Informationen werden normalerweise in Umgebungsvariablen gespeichert.
Verweisen auf Umgebungsvariablen
Alle Umgebungsvariablen stehen der Microsoft Build Engine (MSBuild)-Projektdatei als Eigenschaften zur Verfügung.
Tipp
Wenn die Projektdatei eine explizite Definition einer Eigenschaft enthält, die denselben Namen wie eine Umgebungsvariable hat, wird der Wert der Umgebungsvariablen von der Eigenschaft in der Projektdatei überschrieben.
So verwenden Sie eine Umgebungsvariable in einem MSBuild-Projekt
Verweisen Sie auf die gleiche Weise, auf die Sie auf eine in der Projektdatei deklarierte Variable verweisen würden, auf die Umgebungsvariable. Durch den folgenden Code wird beispielsweise auf die BIN_PATH-Umgebungsvariable verwiesen:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
Sie können ein Condition-Attribut verwenden, um einen Standardwert für eine Eigenschaft anzugeben, falls die Umgebungsvariable nicht festgelegt wurde.
So geben Sie einen Standardwert für eine Eigenschaft an
Verwenden Sie ein Condition-Attribut für eine Eigenschaft, um den Wert nur festzulegen, wenn die Eigenschaft keinen Wert hat. Durch den folgenden Code wird die ToolsPath-Eigenschaft beispielsweise nur auf c:\tools festgelegt, wenn die ToolsPath-Umgebungsvariable nicht festgelegt wurde:
<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
Tipp
Bei Eigenschaftennamen wird nicht zwischen Groß-/Kleinschreibung unterschieden, sodass sowohl $(ToolsPath) als auch $(TOOLSPATH) auf dieselbe 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>
Siehe auch
Aufgaben
Gewusst wie: Erstellen identischer Quelldateien mit unterschiedlichen Optionen