Практическое руководство. Использование переменных среды в построении

Обновлен: Ноябрь 2007

При создании проектов очень часто требуется задавать параметры построения с использованием информации, не содержащейся в файле проекта или файлах, входящих в состав проекта. Эта информация обычно сохраняется в переменных среды.

Ссылки на переменные среды

Все переменные среды доступны файлу проекта Microsoft Build Engine (MSBuild) в качестве свойств.

ms171459.alert_note(ru-ru,VS.90).gifПримечание.

Если в файле проекта содержится явное определение свойства, имя которого совпадает с переменной среды, свойство из файла проекта переопределяет значение переменной среды.

Использование переменной среды в проекте MSBuild

  • Добавляйте ссылки на переменную среды точно так же, как если бы переменная была объявлена в файле проекта. Например, следующий код содержит ссылку на переменную среды BIN_PATH:

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

Если переменная среды не задана, можно задать для свойства значение по умолчанию с помощью атрибута Condition.

Задание значения по умолчанию для свойства

  • Используйте для свойства атрибут Condition, чтобы задать значение только в том случае, если у свойства нет значения. Например, с помощью следующего кода для свойства ToolsPath задается значение c:\tools только в том случае, если не задана переменная среды ToolsPath:

    <ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
    
    ms171459.alert_note(ru-ru,VS.90).gifПримечание.

    Имена свойств не зависят от регистра, поэтому ссылки $(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>

См. также

Задачи

Практическое руководство. Построение одинаковых исходных файлов с различными параметрами

Основные понятия

MSBuild

Свойства MSBuild