Практическое руководство. Использование переменных среды в построении
Обновлен: Ноябрь 2007
При создании проектов очень часто требуется задавать параметры построения с использованием информации, не содержащейся в файле проекта или файлах, входящих в состав проекта. Эта информация обычно сохраняется в переменных среды.
Ссылки на переменные среды
Все переменные среды доступны файлу проекта Microsoft Build Engine (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>
См. также
Задачи
Практическое руководство. Построение одинаковых исходных файлов с различными параметрами