Použití proměnných 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í.
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 Microsoft Build Engine (MSBuild) jako vlastnosti. Platné názvy vlastností jsou popsány ve vlastnostech nástroje MSBuild. Například proměnné prostředí začínající čí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ě, žeToolsPath
proměnná prostředí není nastavena:<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>