BuildItemGroup Classe

Définition

Représente une collection d'objets BuildItem.Represents a collection of BuildItem objects.

public ref class BuildItemGroup : System::Collections::IEnumerable
public class BuildItemGroup : System.Collections.IEnumerable
type BuildItemGroup = class
    interface IEnumerable
Public Class BuildItemGroup
Implements IEnumerable
Héritage
BuildItemGroup
Implémente

Exemples

L’exemple suivant crée un Project objet et utilise la LoadXml méthode pour ajouter du contenu au projet.The following example creates a Project object and uses the LoadXml method to add content to the project. Les BuildItemclasses BuildItemGroup, etBuildItemGroupCollection sont utilisées pour ajouter, supprimer et modifier des éléments dans le projet.The BuildItem, BuildItemGroup, and BuildItemGroupCollection classes are used to add, remove, and change items in the project.

using System;
using System.Collections.Generic;
using System.Text;

using Microsoft.Build.BuildEngine;

namespace AddNewItem
{
    class Program
    {
        /// <summary>
        /// This code demonstrates the use of the following methods:
        ///     Engine constructor
        ///     Project constructor
        ///     Project.LoadFromXml
        ///     Project.Xml
        ///     BuildItemGroupCollection.GetEnumerator
        ///     BuildItemGroup.GetEnumerator
        ///     BuildItem.Name (get)
        ///     BuildItem.Include (set)
        ///     BuildItem.GetMetadata
        ///     BuildItem.SetMetadata
        ///     BuildItemGroup.RemoveItem
        ///     BuildItemGroup.AddNewItem
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            // Create a new Engine object.
            Engine engine = new Engine(Environment.CurrentDirectory);

            // Create a new Project object.
            Project project = new Project(engine);

            // Load the project with the following XML, which contains
            // two ItemGroups.
            project.LoadXml(@"
                <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>

                    <ItemGroup>
                        <Compile Include='Program.cs'/>
                        <Compile Include='Class1.cs'/>
                        <RemoveThisItemPlease Include='readme.txt'/>
                    </ItemGroup>

                    <ItemGroup>
                        <EmbeddedResource Include='Strings.resx'>
                            <LogicalName>Strings.resources</LogicalName>
                            <Culture>fr-fr</Culture>
                        </EmbeddedResource>
                    </ItemGroup>

                </Project>
                ");

            // Iterate through each ItemGroup in the Project.  There are two.
            foreach (BuildItemGroup ig in project.ItemGroups)
            {
                BuildItem itemToRemove = null;

                // Iterate through each Item in the ItemGroup.
                foreach (BuildItem item in ig)
                {
                    // If the item's name is "RemoveThisItemPlease", then
                    // store a reference to this item in a local variable,
                    // so we can remove it later.
                    if (item.Name == "RemoveThisItemPlease")
                    {
                        itemToRemove = item;
                    }

                    // If the item's name is "EmbeddedResource" and it has a metadata Culture
                    // set to "fr-fr", then ...
                    if ((item.Name == "EmbeddedResource") && (item.GetMetadata("Culture") == "fr-fr"))
                    {
                        // Change the item's Include path to "FrenchStrings.fr.resx", 
                        // and add a new metadata Visiable="false".
                        item.Include = @"FrenchStrings.fr.resx";
                        item.SetMetadata("Visible", "false");
                    }
                }

                // Remove the item named "RemoveThisItemPlease" from the
                // ItemGroup
                if (itemToRemove != null)
                {
                    ig.RemoveItem(itemToRemove);
                }

                // For each ItemGroup that we found, add to the end of it
                // a new item Content with Include="SplashScreen.bmp".
                ig.AddNewItem("Content", "SplashScreen.bmp");
            }

            // The project now looks like this:
            //
            //     <?xml version="1.0" encoding="utf-16"?>
            //     <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
            //         <Compile Include="Program.cs" />
            //         <Compile Include="Class1.cs" />
            //         <Content Include="SplashScreen.bmp" />
            //         <EmbeddedResource Include="FrenchStrings.fr.resx">
            //           <LogicalName>Strings.resources</LogicalName>
            //           <Culture>fr-fr</Culture>
            //           <Visible>false</Visible>
            //         <Content Include="SplashScreen.bmp" />
            //
            Console.WriteLine(project.Xml);
        }
    }
}
Module Module1

    ''' <summary>
    ''' This code demonstrates the use of the following methods:
    '''     Engine constructor
    '''     Project constructor
    '''     Project.LoadFromXml
    '''     Project.Xml
    '''     BuildItemGroupCollection.GetEnumerator
    '''     BuildItemGroup.GetEnumerator
    '''     BuildItem.Name (get)
    '''     BuildItem.Include (set)
    '''     BuildItem.GetMetadata
    '''     BuildItem.SetMetadata
    '''     BuildItemGroup.RemoveItem
    '''     BuildItemGroup.AddNewItem
    ''' </summary>
    ''' <remarks></remarks>
    Sub Main()

        ' Create a new Engine object.
        Dim engine As New Engine(Environment.CurrentDirectory)

        ' Create a new Project object.
        Dim project As New Project(engine)

        ' Load the project with the following XML, which contains
        ' two ItemGroups.
        project.LoadXml( _
            "<Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>" & _
                "<ItemGroup>" & _
                    "<Compile Include='Program.cs'/>" & _
                    "<Compile Include='Class1.cs'/>" & _
                    "<RemoveThisItemPlease Include='readme.txt'/>" & _
                "</ItemGroup>" & _
                "<ItemGroup>" & _
                    "<EmbeddedResource Include='Strings.resx'>" & _
                        "<LogicalName>Strings.resources</LogicalName>" & _
                        "<Culture>fr-fr</Culture>" & _
                    "</EmbeddedResource>" & _
                "</ItemGroup>" & _
            "</Project>" _
            )

        ' Iterate through each ItemGroup in the Project.  There are two.
        For Each ig As BuildItemGroup In project.ItemGroups

            Dim itemToRemove As BuildItem
            itemToRemove = Nothing

            ' Iterate through each Item in the ItemGroup.
            For Each item As BuildItem In ig

                ' If the item's name is "RemoveThisItemPlease", then
                ' store a reference to this item in a local variable,
                ' so we can remove it later.
                If item.Name = "RemoveThisItemPlease" Then
                    itemToRemove = item
                End If

                ' If the item's name is "EmbeddedResource" and it has a metadata Culture
                ' set to "fr-fr", then ...
                If (item.Name = "EmbeddedResource") And (item.GetMetadata("Culture") = "fr-fr") Then
                    ' Change the item's Include path to "FrenchStrings.fr.resx", 
                    ' and add a new metadata Visiable="false".
                    item.Include = "FrenchStrings.fr.resx"
                    item.SetMetadata("Visible", "false")
                End If
            Next

            ' Remove the item named "RemoveThisItemPlease" from the
            ' ItemGroup
            If Not itemToRemove Is Nothing Then
                ig.RemoveItem(itemToRemove)
            End If

            ' For each ItemGroup that we found, add to the end of it
            ' a new item Content with Include="SplashScreen.bmp".
            ig.AddNewItem("Content", "SplashScreen.bmp")
        Next

        ' The project now looks like this:
        '
        '     <?xml version="1.0" encoding="utf-16"?>
        '     <Project xmlns="http:'schemas.microsoft.com/developer/msbuild/2003">
        '         <Compile Include="Program.cs" />
        '         <Compile Include="Class1.cs" />
        '         <Content Include="SplashScreen.bmp" />
        '         <EmbeddedResource Include="FrenchStrings.fr.resx">
        '           <LogicalName>Strings.resources</LogicalName>
        '           <Culture>fr-fr</Culture>
        '           <Visible>false</Visible>
        '         <Content Include="SplashScreen.bmp" />
        '
        Console.WriteLine(project.Xml)

    End Sub

End Module

Remarques

Un BuildItemGroup objet peut représenter un élément du projet, ou une collection virtuelle d’éléments, contenant les éléments créés après l’évaluation des caractères génériques dans Include les Exclude attributs et d' Item un élément.A BuildItemGroup object can represent an element in the project, or a virtual collection of items, containing the items created after evaluating wildcards in the Include and Exclude attributes of an Item element.

Constructeurs

BuildItemGroup()

Initialise une nouvelle instance de la classe BuildItemGroup.Initializes a new instance of the BuildItemGroup class.

Propriétés

Condition

Obtient ou définit la valeur de l’attribut Condition du groupe d’éléments.Gets or sets the Condition attribute value of the item group.

Count

Obtient une valeur indiquant le nombre d'objets BuildItem dans BuildItemGroup.Gets a value indicating the number of BuildItem objects in the BuildItemGroup.

IsImported

Obtient ou définit une valeur indiquant si le groupe d'éléments a été importé dans le projet.Gets or sets a value indicating whether the item group was imported into the project.

Item[Int32]

Obtient ou définit un objet BuildItem dans ce BuildItemGroup.Gets or sets a BuildItem object in this BuildItemGroup.

Méthodes

AddNewItem(String, String)

Ajoute un nouvel objet BuildItem avec les valeurs de propriétés Name et Include spécifiées au BuildItemGroup.Adds a new BuildItem with the specified Name and Include property values to the BuildItemGroup.

AddNewItem(String, String, Boolean)

Ajoute un nouveau BuildItem avec les valeurs des propriétés Name et Include spécifiées au BuildItemGroup, ce qui vous permet de spécifier si la valeur de la propriété Include est traitée en tant que littéral.Adds a new BuildItem with the specified Name and Include property values to the BuildItemGroup, allowing you to specify whether the Include property value is treated as a literal.

Clear()

Supprime la valeur de la propriété Condition et tous les objets BuildItem du BuildItemGroup.Removes the Condition property value and all BuildItem objects from the BuildItemGroup.

Clone(Boolean)

Crée une copie complète ou partielle de BuildItemGroup.Creates a deep or shallow copy of the BuildItemGroup.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetEnumerator()

Renvoie un énumérateur qui itère au sein de BuildItemGroup.Gets an enumerator that iterates through the BuildItemGroup.

GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
RemoveItem(BuildItem)

Supprime le BuildItem spécifié du BuildItemGroup.Removes the specified BuildItem from the BuildItemGroup.

RemoveItemAt(Int32)

Supprime l'objet BuildItem à l'index spécifié du BuildItemGroup.Removes the BuildItem at the specified index from the BuildItemGroup.

ToArray()

Copie les objets BuildItem de BuildItemGroup vers un nouveau tableau.Copies the BuildItem objects in the BuildItemGroup to a new array.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

S’applique à