Megosztás a következőn keresztül:


Környezeti változók használata buildben

Projektek készítésekor gyakran szükség van a buildelési beállítások megadására a projektfájlban vagy a projektet alkotó fájlokban nem szereplő információk használatával. Ezeket az információkat általában környezeti változók tárolják.

Megjegyzés:

Az MSBuild megbízható bemenetként kezeli a környezeti változókat. Az MSBuild betöltheti a build logikáját, például feladatokat, .targets vagy .props fájlokat egyéni helyekről, illetve módosíthatja, hogy a build hogyan hajtódik végre.

Referencia környezeti változók

Az MSBuild-projektfájl minden érvényes MSBuild tulajdonságnevű környezeti változója tulajdonságokként érhető el. Az érvényes tulajdonságneveket az MSBuild tulajdonságok ismertetik. A számmal kezdődő környezeti változók például nem érhetők el az MSBuildben.

Megjegyzés:

Ha a projektfájl olyan tulajdonság explicit definícióját tartalmazza, amelynek neve megegyezik egy környezeti változó nevével, a projektfájl tulajdonsága felülírja a környezeti változó értékét.

Környezeti változó használata MSBuild-projektben

  • A környezeti változóra ugyanúgy hivatkozzon, mint a projektfájlban deklarált változóra. A következő kód például a BIN_PATH környezeti változóra hivatkozik:

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

    Ha a környezeti változó nincs beállítva, attribútummal Condition megadhat alapértelmezett értéket egy tulajdonsághoz.

Alapértelmezett érték megadása egy tulajdonsághoz

  • Használjon egy Condition attribútumot egy tulajdonságon, hogy beállítsa az értéket, csak akkor, ha a tulajdonságnak nincs értéke. A következő kód például csak akkor állítja be a ToolsPath c :\tools tulajdonságot, ha a ToolsPath környezeti változó nincs beállítva:

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

    Megjegyzés:

    A tulajdonságnevek nem megkülönböztetik a kis- és nagybetűket, így mindkettőre $(ToolsPath) hivatkozhat, és $(TOOLSPATH) ugyanarra a tulajdonságra vagy környezeti változóra hivatkozhat.

példa

Az alábbi projektfájl környezeti változókkal határozza meg a könyvtárak helyét.

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