Использование переменных среды в сборке
При сборке проектов часто бывает необходимо задать параметры сборки, используя сведения не из файла проекта или файлов, входящих в проект. Эти сведения обычно хранятся в переменных среды.
Ссылки на переменные среды
Все переменные среды, которые являются допустимыми именами свойств MSBuild, доступны в файле проекта Microsoft Build Engine (MSBuild) в качестве свойств. Допустимые имена свойств описаны в свойствах MSBuild. Например, переменные среды, начинающиеся с числа, недоступны в MSBuild.
Примечание.
Если файл проекта содержит явное определение свойства с тем же именем, что и у переменной среды, свойство в файле проекте переопределяет значение переменной среды.
Использование переменной среды в проекте MSBuild
Ссылка на переменную среды выполняется аналогично объявлению переменной в файле проекта. Например, следующий код ссылается на переменную среды BIN_PATH:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
Вы можете использовать атрибут
Condition
, чтобы предоставить значение по умолчанию для свойства, если переменная среды не задана.
Предоставление значения по умолчанию для свойства
Используйте атрибут
Condition
для свойства, чтобы задать значение только в том случае, когда свойство не имеет значения. Например, следующий код задает для свойстваToolsPath
значение c:\tools только тогда, когда переменная средыToolsPath
не задана:<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
Примечание.
Имена свойств не учитывают регистр, поэтому как
$(ToolsPath)
, так и$(TOOLSPATH)
ссылаются на одно свойство или одну переменную среды.
Пример
Следующий файл проекта использует переменные среды, чтобы указать расположение каталогов.
<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>