BuildItemGroup BuildItemGroup BuildItemGroup BuildItemGroup Class

Определение

Представляет коллекцию объектов 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
Наследование
BuildItemGroupBuildItemGroupBuildItemGroupBuildItemGroup
Реализации

Примеры

В следующем примере создается Project и использует LoadXml метод для добавления содержимого в проект.The following example creates a Project object and uses the LoadXml method to add content to the project. BuildItem, BuildItemGroup, И BuildItemGroupCollection классы позволяют добавлять, удалять и изменять элементы в проекте.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

Комментарии

Объект BuildItemGroup объект может представлять элемент в проекте или коллекцию виртуальных элементов, содержащий элементы, созданные после оценки подстановочные знаки в Include и Exclude атрибуты Item элемент.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.

Конструкторы

BuildItemGroup() BuildItemGroup() BuildItemGroup() BuildItemGroup()

Инициализирует новый экземпляр класса BuildItemGroup.Initializes a new instance of the BuildItemGroup class.

Свойства

Condition Condition Condition Condition

Возвращает или задает значение атрибута Condition для группы элементов.Gets or sets the Condition attribute value of the item group.

Count Count Count Count

Получает значение, представляющее число объектов BuildItem в BuildItemGroup.Gets a value indicating the number of BuildItem objects in the BuildItemGroup.

IsImported IsImported IsImported IsImported

Получает или задает значение, указывающее была ли группа элементов импортирована в проект.Gets or sets a value indicating whether the item group was imported into the project.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Получает или задает объект BuildItem в этом объекте BuildItemGroup.Gets or sets a BuildItem object in this BuildItemGroup.

Методы

AddNewItem(String, String) AddNewItem(String, String) AddNewItem(String, String) AddNewItem(String, String)

Добавляет новый объект BuildItem с заданными значениями свойств Name и Include к объекту BuildItemGroup.Adds a new BuildItem with the specified Name and Include property values to the BuildItemGroup.

AddNewItem(String, String, Boolean) AddNewItem(String, String, Boolean) AddNewItem(String, String, Boolean) AddNewItem(String, String, Boolean)

Добавляет новый объект BuildItem с заданными значениями свойств Name и Include к объекту BuildItemGroup, разрешая задавать, следует ли рассматривать значение свойства Include как литерал.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() Clear() Clear() Clear()

Удаляет значение свойства Condition и все объекты BuildItem из BuildItemGroup.Removes the Condition property value and all BuildItem objects from the BuildItemGroup.

Clone(Boolean) Clone(Boolean) Clone(Boolean) Clone(Boolean)

Создает глубокую или поверхностную копию объекта BuildItemGroup.Creates a deep or shallow copy of the BuildItemGroup.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Получает перечислитель, осуществляющий итерацию объектов BuildItemGroup.Gets an enumerator that iterates through the BuildItemGroup.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
RemoveItem(BuildItem) RemoveItem(BuildItem) RemoveItem(BuildItem) RemoveItem(BuildItem)

Удаляет заданный объект класса BuildItem из объекта класса BuildItemGroup.Removes the specified BuildItem from the BuildItemGroup.

RemoveItemAt(Int32) RemoveItemAt(Int32) RemoveItemAt(Int32) RemoveItemAt(Int32)

Удаляет объект BuildItem из коллекции BuildItemGroup по заданному индексу.Removes the BuildItem at the specified index from the BuildItemGroup.

ToArray() ToArray() ToArray() ToArray()

Копирует объекты BuildItem в объекте BuildItemGroup в новый массив.Copies the BuildItem objects in the BuildItemGroup to a new array.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Методы расширения

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

Применяется к