Sdílet prostřednictvím


Použijte proměnné prostředí v sestavení

Při sestavování projektů je často nutné nastavit možnosti sestavení pomocí informací, které nejsou v souboru projektu nebo soubory, které tvoří váš projekt. Tyto informace jsou obvykle uložené v proměnných prostředí.

Poznámka:

Nástroj MSBuild považuje proměnné prostředí za důvěryhodné vstupy. Mohou způsobit, že nástroj MSBuild načte logiku sestavení, jako jsou úlohy, .targets nebo .props soubory z uživatelsky definovaných umístění nebo změní průběh sestavení.

Referenční proměnné prostředí

Všechny proměnné prostředí, které jsou platnými názvy vlastností NÁSTROJE MSBuild, jsou k dispozici pro soubor projektu MSBuild jako vlastnosti. Platné názvy vlastností jsou popsány ve vlastnostech nástroje MSBuild. Například proměnné prostředí, které začínají číslem, nejsou v nástroji MSBuild k dispozici.

Poznámka:

Pokud soubor projektu obsahuje explicitní definici vlastnosti, která má stejný název jako proměnná prostředí, vlastnost v souboru projektu přepíše hodnotu proměnné prostředí.

Použití proměnné prostředí v projektu MSBuild

  • Na proměnnou prostředí se odkazuje stejným způsobem jako proměnná deklarovaná v souboru projektu. Například následující kód odkazuje na proměnnou prostředí BIN_PATH:

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

    Atribut můžete použít Condition k zadání výchozí hodnoty vlastnosti, pokud proměnná prostředí nebyla nastavena.

Zadání výchozí hodnoty vlastnosti

  • Condition Pomocí atributu u vlastnosti nastavte hodnotu pouze v případě, že vlastnost nemá žádnou hodnotu. Například následující kód nastaví ToolsPath vlastnost na c:\tools pouze v případě ToolsPath , že proměnná prostředí není nastavená:

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

    Poznámka:

    V názvech vlastností se nerozlišují malá a velká písmena, takže na $(ToolsPath)$(TOOLSPATH) stejnou vlastnost nebo proměnnou prostředí odkazují.

Příklad

Následující soubor projektu používá proměnné prostředí k určení umístění adresářů.

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