Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beim Erstellen von Projekten ist es häufig erforderlich, Buildoptionen mithilfe von Informationen festzulegen, die sich nicht in der Projektdatei oder in den Dateien befinden, aus denen Ihr Projekt besteht. Diese Informationen werden in der Regel in Umgebungsvariablen gespeichert.
Hinweis
MSBuild behandelt Umgebungsvariablen als vertrauenswürdige Eingaben. Sie können dazu führen, dass MSBuild Buildlogik wie Aufgaben, .targetsoder .props Dateien von benutzerdefinierten Speicherorten lädt oder die Ausführung des Builds ändert.
Umgebungsvariablen referenzieren
Alle Umgebungsvariablen, die gültige MSBuild-Eigenschaftennamen sind, sind für die MSBuild-Projektdatei als Eigenschaften verfügbar. Gültige Eigenschaftsnamen werden in MSBuild-Eigenschaften beschrieben. Umgebungsvariablen, die mit einer Zahl beginnen, stehen beispielsweise in MSBuild nicht zur Verfügung.
Hinweis
Wenn die Projektdatei eine explizite Definition einer Eigenschaft enthält, die denselben Namen wie eine Umgebungsvariable hat, überschreibt die Eigenschaft in der Projektdatei den Wert der Umgebungsvariable.
So verwenden Sie eine Umgebungsvariable in einem MSBuild-Projekt
Verweisen Sie auf die Umgebungsvariable auf die gleiche Weise wie eine variable, die in Der Projektdatei deklariert wird. Der folgende Code verweist beispielsweise auf die BIN_PATH Umgebungsvariable:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>Sie können ein
ConditionAttribut verwenden, um einen Standardwert für eine Eigenschaft bereitzustellen, wenn die Umgebungsvariable nicht festgelegt wurde.
Einen Standardwert für eine Eigenschaft setzen
Verwenden Sie ein
ConditionAttribut für eine Eigenschaft, um den Wert nur festzulegen, wenn die Eigenschaft keinen Wert aufweist. Der folgende Code setzt dieToolsPath-Eigenschaft nur dann auf c:\tools, wenn dieToolsPath-Umgebungsvariable nicht gesetzt ist.<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>Hinweis
Bei Eigenschaftsnamen wird die Groß-/Kleinschreibung nicht beachtet, sodass sowohl
$(ToolsPath)als auch$(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>