Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du skapar projekt är det ofta nödvändigt att ange byggalternativ med hjälp av information som inte finns i projektfilen eller filerna som ingår i projektet. Den här informationen lagras vanligtvis i miljövariabler.
Anmärkning
MSBuild behandlar miljövariabler som betrodda indata. De kan få MSBuild att läsa in bygglogik, till exempel uppgifter, .targetseller .props filer från anpassade platser eller ändra hur bygget körs.
Referensmiljövariabler
Alla miljövariabler som är giltiga MSBuild-egenskapsnamn är tillgängliga för MSBuild-projektfilen som egenskaper. Giltiga egenskapsnamn beskrivs i MSBuild-egenskaper. Miljövariabler som börjar med ett tal är till exempel inte tillgängliga i MSBuild.
Anmärkning
Om projektfilen innehåller en explicit definition av en egenskap som har samma namn som en miljövariabel åsidosätter egenskapen i projektfilen värdet för miljövariabeln.
Så här använder du en miljövariabel i ett MSBuild-projekt
Referera till miljövariabeln på samma sätt som en variabel som deklareras i projektfilen. Följande kod refererar till exempel till miljövariabeln BIN_PATH:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>Du kan använda ett
Conditionattribut för att ange ett standardvärde för en egenskap om miljövariabeln inte har angetts.
Ange ett standardvärde för en egenskap
Använd ett
Conditionattribut på en egenskap för att ange värdet endast om egenskapen inte har något värde. Följande kod angerToolsPathtill exempel egenskapen till c:\tools endast omToolsPathmiljövariabeln inte har angetts:<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>Anmärkning
Egenskapsnamn är inte skiftlägeskänsliga, så både
$(ToolsPath)och$(TOOLSPATH)refererar till samma egenskap eller miljövariabel.
Exempel
I följande projektfil används miljövariabler för att ange platsen för kataloger.
<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>