ProjectCollection Класс

Определение

Этот класс инкапсулирует набор связанных проектов, их наборы инструментов, набор глобальных свойств по умолчанию и средства ведения журнала, которые следует использовать для их сборки.This class encapsulates a set of related projects, their toolsets, a default set of global properties, and the loggers that should be used to build them. Глобальная версия этого класса выполняет роль коллекции ProjectCollection по умолчанию.A global version of this class acts as the default ProjectCollection. В AppDomain могут существовать несколько ProjectCollection,Multiple ProjectCollections can exist within an appdomain. но нельзя выполнять их сборку одновременно.However, these must not build concurrently.

public ref class ProjectCollection : IDisposable
public class ProjectCollection : IDisposable
type ProjectCollection = class
    interface IDisposable
Public Class ProjectCollection
Implements IDisposable
Наследование
ProjectCollection
Реализации

Комментарии

В домене приложения может существовать несколько коллекций проектов.Multiple project collections can exist within an app domain. но нельзя выполнять их сборку одновременно.However, these must not build concurrently.

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

ProjectCollection()

Создает экземпляр коллекции проектов без глобальных свойств и средств ведения журнала, которая считывает сведения о наборе инструментов из файла конфигурации и реестра.Instantiates a project collection with no global properties or loggers that reads toolset information from the configuration file and registry.

ProjectCollection(IDictionary<String,String>)

Создает экземпляр коллекции проектов с заданными глобальными свойствами без средств ведения журнала, который считывает сведения о наборе инструментов из файла конфигурации и реестра.Instantiates a project collection with specified global properties, no loggers, and that reads toolset information from the configuration file and registry. Может создавать исключение InvalidToolsetDefinitionException.May throw InvalidToolsetDefinitionException.

ProjectCollection(IDictionary<String,String>, IEnumerable<ILogger>, IEnumerable<ForwardingLoggerRecord>, ToolsetDefinitionLocations, Int32, Boolean)

Создает экземпляр коллекции проектов с указанными глобальными свойствами и средствами ведения журнала, а также применяет указанные значения для расположений наборов инструментов, количества узлов и onlyLogCriticalEvents.Instantiates a project collection with specified global properties and loggers and using the specified toolset locations, node count, and setting of onlyLogCriticalEvents. Глобальные свойства и средства ведения журнала могут иметь значение NULL.Global properties and loggers may be null. Создает исключение InvalidProjectFileException, если любое из глобальных свойств зарезервировано.Throws InvalidProjectFileException if any of the global properties are reserved. Может создавать исключение InvalidToolsetDefinitionException.May throw InvalidToolsetDefinitionException.

ProjectCollection(IDictionary<String,String>, IEnumerable<ILogger>, IEnumerable<ForwardingLoggerRecord>, ToolsetDefinitionLocations, Int32, Boolean, Boolean)

Создает экземпляр коллекции проектов с указанными глобальными свойствами и средствами ведения журнала, а также применяет указанные значения для расположений наборов инструментов, количества узлов и onlyLogCriticalEvents.Instantiates a project collection with specified global properties and loggers and using the specified toolset locations, node count, and setting of onlyLogCriticalEvents. Глобальные свойства и средства ведения журнала могут иметь значение NULL.Global properties and loggers may be null. Создает исключение InvalidProjectFileException, если любое из глобальных свойств зарезервировано.Throws InvalidProjectFileException if any of the global properties are reserved. Может создавать исключение InvalidToolsetDefinitionException.May throw InvalidToolsetDefinitionException.

ProjectCollection(IDictionary<String,String>, IEnumerable<ILogger>, ToolsetDefinitionLocations)

Создает экземпляр коллекции проектов с указанными глобальными свойствами и средствами ведения журнала, использующий заданные расположения набора инструментов.Instantiates a project collection with specified global properties and loggers and using the specified toolset locations. Может создавать исключение InvalidToolsetDefinitionException.May throw InvalidToolsetDefinitionException.

ProjectCollection(ToolsetDefinitionLocations)

Создает экземпляр коллекции проектов с использованием наборов инструментов из указанных расположений, без глобальных свойств и средств ведения журнала.Instantiates a project collection using toolsets from the specified locations, and no global properties or loggers. Может создавать исключение InvalidToolsetDefinitionException.May throw InvalidToolsetDefinitionException.

Свойства

Count

Число проектов, загруженных в эту коллекцию в данный момент.Number of projects currently loaded into this collection.

DefaultToolsVersion

Версия инструментов по умолчанию для этой коллекции проектов.The default tools version of this project collection. Проекты используют эту версию инструментов, если у них нет другой информации о том, какую версию инструментов следует использовать.Projects use this tools version if they aren't otherwise told what tools version to use. Это значение получается из файла .exe.config или из реестра. Если ни в одном из этих источников не указана версия инструментов по умолчанию, применяется жестко заданная в коде версия инструментов "2.0".This value is gotten from the .exe.config file, or else in the registry, or if neither specify a default tools version then it is hard-coded to the tools version "2.0". Метод задания вызывает исключение InvalidOperationException, если не определен набор инструментов с предоставленной версией инструментов.Setter throws InvalidOperationException if a toolset with the provided tools version has not been defined. Определяется всегда.Always defined.

DisableMarkDirty

Дает возможность временно отключить MarkDirty() для проектов в этой коллекции.Whether MarkDirty() is temporarily disabled on projects in this collection. Это позволяет, например, установить глобальные свойства проекта, не создавая для него метку об изменении, которая приведет к выполнению повторной оценки.This allows, for example, global properties to be set without projects getting marked dirty for reevaluation as a consequence.

DisplayVersion

Возвращает версию подсистемы, которая подходит для отображения пользователю.Gets a version of the Engine suitable for display to a user.

GlobalProjectCollection

Извлекает объект глобальной коллекции проектов.Retrieves the global project collection object. Это отдельная коллекция проектов без глобальных свойств и средств ведения журнала, которая считывает сведения о наборе инструментов из файла конфигурации и реестра.This is a singleton project collection with no global properties or loggers that reads toolset information from the configuration file and registry. Может создавать исключение InvalidToolsetDefinitionException.May throw InvalidToolsetDefinitionException. Потокобезопасный.Thread safe.

GlobalProperties

Возвращает глобальные свойства по умолчанию для всех проектов в этой коллекции.Returns default global properties for all projects in this collection. Неработающий словарь только для чтения.Read-only dead dictionary.

HostServices

Объект, предоставляющий задачам службы узла во время сборки проектов, содержащихся в этой коллекции проектов.Object exposing host services to tasks during builds of projects contained by this project collection. По умолчанию используется HostServices.By default, HostServices is used. Может иметь значение NULL, но в этом случае метод получения создаст новый экземпляр.May be set to null, but the getter will create a new instance in that case.

IsBuildEnabled

Это значение по умолчанию, которое используется только что созданными проектами для проверки того, включена ли сборка проектов.This is the default value used by newly created projects for whether or not the building of projects is enabled. Этот механизм нужен для целей безопасности и позволяет узлу точно контролировать, какие проекты в нем могут выполнять целевые объекты и задачи.This is for security purposes in case a host wants to closely control which projects it allows to run targets/tasks.

LoadedProjects

Все проекты, которые в данный момент загружены в эту коллекцию.All the projects currently loaded into this collection. Каждый из них имеет уникальное сочетание пути, глобальных свойств и версии инструментов.Each has a unique combination of path, global properties, and tools version.

Loggers

Средства ведения журнала, которые будут использоваться при сборке всеми проектами коллекции.Loggers that all contained projects will use for their builds. Средства ведения журнала добавляются с помощью RegisterLogger(ILogger).Loggers are added with the RegisterLogger(ILogger). Возвращает пустую коллекцию, если средства ведения журнала отсутствуют.Returns an empty collection if there are no loggers.

OnlyLogCriticalEvents

Значение true обозначает, что в журнал сохраняются только критические события, например предупреждения и ошибки.When true, only log critical events such as warnings and errors. Обязательный параметр для совместимости с APIHas to be in here for API compat

SkipEvaluation

Определяет, отключена ли повторная оценка для проектов в этой коллекции.Whether reevaluation is temporarily disabled on projects in this collection. Это может быть полезным, если узел ожидает выполнение ряда считываний и записей в проектах и целесообразно временно пожертвовать правильностью для увеличения производительности.This is useful when the host expects to make a number of reads and writes to projects, and wants to temporarily sacrifice correctness for performance.

ToolsetLocations

Возвращает расположения, используемые для поиска наборов инструментов.Returns the locations used to find the toolsets.

Toolsets

Возвращает наборы инструментов, о которых есть сведения в этой ProjectCollection.Returns the toolsets this ProjectCollection knows about.

Version

Возвращает версию файла, в котором находится сборка ядра.Gets the file version of the file in which the Engine assembly lies.

Методы

AddToolset(Toolset)

Добавляет новый набор инструментов.Add a new toolset. Заменяет любой существующий набор инструментов с такой же версией инструментов.Replaces any existing toolset with the same tools version.

ContainsToolset(String)

Возвращает значение true, если для указанной версии инструментов определен набор инструментов; или false в противном случае.Returns true if there is a toolset defined for the specified tools version, otherwise false.

Dispose()

Вызывается, если узел полностью завершил обработку коллекции проектов.Called when a host is completely done with the project collection.

Dispose(Boolean)

Применяет стандартный рекомендованный шаблон удаления для платформы.Following standard framework guideline dispose pattern. Завершает работу службы ведения журнала, если она присутствует в коллекции проектов, чтобы завершить работу потока средства ведения журнала и средств ведения журнала.Shut down logging service if the project collection owns one, in order to shut down the logger thread and loggers.

Equals(Object)

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

(Унаследовано от Object)
Escape(String)

Строка экранируется с использованием формата экранирования MSBuild.Escape a string using MSBuild escaping format. Например, "%3b" обозначает ";".For example, "%3b" for ";". Экранирование применяется только для тех символов, которые особенно важны для синтаксического анализа в MSBuild.Only characters that are especially significant to MSBuild parsing are escaped. Вызывающие объекты могут использовать этот метод, чтобы сделать строку безопасной для синтаксического анализа в других методах, которые иначе могли бы расширять эту строку, или для записи в файл проекта.Callers can use this method to make a string safe to be parsed to other methods that would otherwise expand it; or to make a string safe to be written to a project file.

GetEffectiveToolsVersion(String, String)

Определите, какое значение ToolsVersion следует использовать для фактической сборки проекта.Figure out what ToolsVersion to use to actually build the project with.

GetGlobalProperty(String)

Получает любое глобальное свойство из коллекции проектов с указанным именем; в противном случае возвращает значение NULL.Get any global property on the project collection that has the specified name, otherwise returns null.

GetHashCode()

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

(Унаследовано от Object)
GetLoadedProjects(String)

Возвращает все загруженные проекты по указанному пути.Returns any and all loaded projects with the provided path. Может существовать несколько проектов, если они имеют разные глобальные свойства и (или) версии инструментов.There may be more than one, if they are distinguished by global properties and/or tools version.

GetToolset(String)

Получает набор инструментов с заданной версией инструментов.Get the toolset with the specified tools version. Если таковой отсутствует, возвращает значение NULL.If it is not present, returns null.

GetType()

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

(Унаследовано от Object)
LoadProject(String)

Загружает проект с указанным именем файла, используя глобальные свойства и версию инструментов коллекции.Loads a project with the specified filename, using the collection's global properties and tools version. Возвращает соответствующий проект, если он уже загружен, в противном случае загружает новый проект.If a matching project is already loaded, it will be returned, otherwise a new project will be loaded.

LoadProject(String, IDictionary<String,String>, String)

Загружает проект с указанными значениями имени файла, версии инструментов и глобальных свойств.Loads a project with the specified filename, tools version and global properties. Возвращает соответствующий проект, если он уже загружен, в противном случае загружает новый проект.If a matching project is already loaded, it will be returned, otherwise a new project will be loaded.

LoadProject(String, String)

Загружает проект с указанными именем файла и версией инструментов, используя глобальные свойства коллекции.Loads a project with the specified filename and tools version, using the collection's global properties. Возвращает соответствующий проект, если он уже загружен, в противном случае загружает новый проект.If a matching project is already loaded, it will be returned, otherwise a new project will be loaded.

LoadProject(XmlReader)

Загружает проект с указанным средством чтения, используя глобальные свойства и версию инструментов коллекции.Loads a project with the specified reader, using the collection's global properties and tools version. Проект будет добавлен в эту коллекцию проектов, когда она получит имя.The project will be added to this project collection when it is named.

LoadProject(XmlReader, IDictionary<String,String>, String)

Загружает проект с указанными значениями средства чтения, версии инструментов и глобальных свойств.Loads a project with the specified reader, tools version and global properties. Проект будет добавлен в эту коллекцию проектов, когда она получит имя.The project will be added to this project collection when it is named.

LoadProject(XmlReader, String)

Загружает проект с указанными версиями средства чтения и инструментов, используя глобальные свойства коллекции.Loads a project with the specified reader and tools version, using the collection's global properties. Проект будет добавлен в эту коллекцию проектов, когда она получит имя.The project will be added to this project collection when it is named.

MemberwiseClone()

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

(Унаследовано от Object)
RegisterForwardingLoggers(IEnumerable<ForwardingLoggerRecord>)

Добавляет некоторые удаленные средства ведения журнала в коллекцию удаленных средств ведения журнала, которая используется для сборки проектов в этой коллекции.Adds some remote loggers to the collection of remote loggers used for builds of projects in this collection. Может принимать значение NULL.May be null.

RegisterLogger(ILogger)

Добавляет некоторое средство ведения журнала в коллекцию средств ведения журнала, которая используется для сборки проектов в этой коллекции.Adds a logger to the collection of loggers used for builds of projects in this collection. Если объект средства ведения журнала уже находится в коллекции, никакие действия не выполняются.If the logger object is already in the collection, does nothing.

RegisterLoggers(IEnumerable<ILogger>)

Добавляет некоторые средства ведения журнала в коллекцию средств ведения журнала, которая используется для сборки проектов в этой коллекции.Adds some loggers to the collection of loggers used for builds of projects in this collection. Если какой-либо объект средства ведения журнала уже находится в этой коллекции, никакие действия для него не выполняются.If any logger object is already in the collection, does nothing for that logger. Может принимать значение NULL.May be null.

RemoveAllToolsets()

Удаляет все наборы инструментов.Removes all toolsets.

RemoveGlobalProperty(String)

Удаляет глобальное свойство из набора глобальных свойств на уровне коллекции и из всех проектов в коллекции проектов.Removes a global property from the collection-level set of global properties, and all projects in the project collection. Возвращает значение true, если свойство присутствовало в коллекции проектов.If it was on this project collection, returns true.

RemoveToolset(String)

Удаляет набор инструментов.Remove a toolset. Возвращает значение true, если набор присутствовал, или false в противном случае.Returns true if it was present, otherwise false.

SetGlobalProperty(String, String)

Задает глобальное свойство на уровне коллекции и для всех проектов в коллекции проектов.Set a global property at the collection-level, and on all projects in the project collection.

ToString()

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

(Унаследовано от Object)
TryUnloadProject(ProjectRootElement)

Полностью выгружает корневой XML-элемент проекта из кэша, если он не используется проектом, загруженным в эту коллекцию.Unloads a project XML root element from the cache entirely, if it is not in use by project loaded into this collection. Возвращает значение true, если выгрузка завершилась успешно или элемент не был загружен.Returns true if it was unloaded successfully, or was not already loaded. Возвращает значение false, если выгрузка не удалась из-за того, что элемент используется загруженным Project.Returns false if it was not unloaded because it was still in use by a loaded Project.

Unescape(String)

Отменяет экранирование с использованием формата экранирования MSBuild.Unescape a string using MSBuild escaping format. Например, "%3b" обозначает ";".For example, "%3b" for ";". Для всех экранированных символов удаляются символы экранирования.All escaped characters are unescaped.

UnloadAllProjects()

Выгружает все проекты, содержащиеся в этой ProjectCollection.Unloads all the projects contained by this ProjectCollection. Узел должен вызывать этот метод, если полностью завершил обработку всех проектов.Host should call this when they are completely done with all the projects.

UnloadProject(Project)

Выгружает указанный проект.Unloads the specific project specified. Узел должен вызывать этот метод при полном завершении обработки проекта.Host should call this when they are completely done with the project. Если проект еще не загружен, создается исключение InvalidOperationException.If project was not already loaded, throws InvalidOperationException.

UnloadProject(ProjectRootElement)

Выгружает корневой XML-элемент проекта из простого кэша.Unloads a project XML root element from the weak cache.

UnregisterAllLoggers()

Удаляет все средства ведения журнала из коллекции средств ведения журнала, которая используется для сборки проектов в этой коллекции.Removes all loggers from the collection of loggers used for builds of projects in this collection.

События

ProjectAdded

Событие, возникающее, когда проект добавлен в ProjectRootElementCache этой коллекции проектов.Event that is fired when a project is added to the ProjectRootElementCache of this project collection.

ProjectChanged

Возникает при прямом изменении Project, который содержится в данном экземпляре.Raised when a Project contained by this instance is directly changed.

ProjectCollectionChanged

Возникает при изменении состояния в данном экземпляре.Raised when state is changed on this instance.

ProjectXmlChanged

Возникает при изменении ProjectRootElement, который содержится в данном экземпляре.Raised when a ProjectRootElement contained by this instance is changed.

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