Delen via


Omgevingsvariabelen gebruiken in een build

Wanneer u projecten bouwt, is het vaak nodig om buildopties in te stellen met behulp van informatie die zich niet in het projectbestand bevindt of de bestanden waaruit uw project bestaat. Deze informatie wordt doorgaans opgeslagen in omgevingsvariabelen.

Opmerking

MSBuild behandelt omgevingsvariabelen als vertrouwde invoer. Ze kunnen ertoe leiden dat MSBuild buildlogica laadt, zoals taken, .targetsof .props bestanden van aangepaste locaties of dat de uitvoering van de build wordt gewijzigd.

Referentieomgevingsvariabelen

Alle omgevingsvariabelen die geldige MSBuild-eigenschapsnamen zijn, zijn beschikbaar voor het MSBuild-projectbestand als eigenschappen. Geldige eigenschapsnamen worden beschreven in MSBuild-eigenschappen. Omgevingsvariabelen die beginnen met een getal, zijn bijvoorbeeld niet beschikbaar in MSBuild.

Opmerking

Als het projectbestand een expliciete definitie bevat van een eigenschap met dezelfde naam als een omgevingsvariabele, overschrijft de eigenschap in het projectbestand de waarde van de omgevingsvariabele.

Een omgevingsvariabele gebruiken in een MSBuild-project

  • Verwijs naar de omgevingsvariabele op dezelfde manier als een variabele die in het projectbestand is gedeclareerd. De volgende code verwijst bijvoorbeeld naar de omgevingsvariabele BIN_PATH:

    <FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>

    U kunt een Condition kenmerk gebruiken om een standaardwaarde voor een eigenschap op te geven als de omgevingsvariabele niet is ingesteld.

Een standaardwaarde opgeven voor een eigenschap

  • Gebruik een Condition kenmerk voor een eigenschap om de waarde alleen in te stellen als de eigenschap geen waarde heeft. Met de volgende code wordt de ToolsPath eigenschap bijvoorbeeld alleen ingesteld op c:\tools als de ToolsPath omgevingsvariabele niet is ingesteld:

    <ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>

    Opmerking

    Eigenschapsnamen zijn niet hoofdlettergevoelig, dus beide $(ToolsPath) verwijzen $(TOOLSPATH) naar dezelfde eigenschap of omgevingsvariabele.

Voorbeeld

In het volgende projectbestand worden omgevingsvariabelen gebruikt om de locatie van mappen op te geven.

<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>