msbuild
Orden de la propiedad y la evaluación del artículo
Buscar..
Observaciones
Para obtener más detalles, consulte Orden de evaluación de propiedades y artículos en la página de documentación de MSDN Comparando propiedades y artículos .
Ejemplo que ilustra el orden de evaluación.
MSBuild evalúa los elementos PropertyGroup , Choose y ItemGroup que están directamente debajo del elemento Project antes que los que están en los elementos Target .
- Directamente bajo el elemento
Project, los elementosItemGroupPropertyGroupyChoosese evalúan en el orden en que aparecen, y luego los elementos delItemGroupelementos se evalúan en el orden en que aparecen. - En los elementos de
Target,PropertyGroupyItemGroupcomparten la misma prioridad y se evalúan en el orden en que aparecen.
Dentro de los archivos a los que se hace referencia a través de Import , MSBuild evalúa PropertyGroup , Choose y ItemGroup de la misma manera que antes, y como si el contenido de los archivos importados apareciera en línea donde se encuentra la Import .
Los comentarios a continuación proporcionan valores de propiedad y conteos de elementos antes y después de que MSBuild evalúa las líneas seleccionadas.
<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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow