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 elementos ItemGroup PropertyGroup y Choose se evalúan en el orden en que aparecen, y luego los elementos del ItemGroup elementos se evalúan en el orden en que aparecen.
  • En los elementos de Target , PropertyGroup y ItemGroup comparten 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