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

Konzepte

MSBuild-Eigenschaften

Weitere Ressourcen

MSBuild