Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При сборке проектов часто необходимо задать параметры сборки, используя сведения, не содержащиеся в файле проекта или файлах, составляющих проект. Эта информация обычно хранится в переменных среды.
Замечание
MSBuild обрабатывает переменные среды как доверенные входные данные. Они могут привести к загрузке логики сборки MSBuild, например задач, .targets или .props файлов из пользовательских расположений, а также изменению процесса выполнения сборки.
Эталонные переменные среды
Все переменные среды, которые являются допустимыми именами свойств MSBuild, доступны в файле проекта 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>