msbuild
Порядок оценки имущества и предметов
Поиск…
замечания
Для получения более подробной информации см. « Порядок оценки свойств и предметов» на странице документации MSDN « Сравнение свойств и элементов» .
Пример, иллюстрирующий порядок оценки
MSBuild оценивает элементы PropertyGroup , Choose и ItemGroup которые находятся непосредственно под элементом Project до тех, которые находятся в элементах Target .
- Непосредственно под элементом
ProjectэлементыPropertyGroupиChooseоцениваются в том порядке, в котором они отображаются, а затем элементыItemGroupоцениваются в том порядке, в котором они отображаются. - В элементах
TargetPropertyGroupиItemGroupимеют равный приоритет и оцениваются в том порядке, в котором они отображаются.
В файлах, связанных с помощью Import , MSBuild оценивает PropertyGroup , Choose и ItemGroup таким же образом, как указано выше, и, как если бы содержимое импортированных файлов появилось в строке, где находится Import .
Комментарии ниже содержат значения свойств и количество элементов до и после MSBuild оценивает выбранные строки.
<Project DefaultTargets="FooTarget" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="FooTarget">
<ItemGroup>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '1' -->
<FooItem Include="foo value B" />
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '2' -->
</ItemGroup>
<PropertyGroup>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '2' -->
<FooProp>3</FooProp>
<!-- '$(FooProp)' == '3', '@(FooItem->Count())' == '2' -->
</PropertyGroup>
</Target>
<ItemGroup>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '0' -->
<FooItem Include="foo value A" />
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '1' -->
</ItemGroup>
<PropertyGroup>
<!-- '$(FooProp)' == '', '@(FooItem->Count())' == '0' -->
<FooProp>1</FooProp>
<!-- '$(FooProp)' == '1', '@(FooItem->Count())' == '0' -->
</PropertyGroup>
<Choose>
<When Condition=" '$(FooProp)' == '1' ">
<!-- '$(FooProp)' == '1', '@(FooItem->Count())' == '0' -->
<FooProp>2</FooProp>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '0' -->
</When>
</Choose>
</Project>
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow