Microsoft.Build.Utilities Пространство имен

Содержит вспомогательные классы, которые можно использовать для создания собственных средств ведения журнала и задач MSBuild. Provides helper classes that you can use to create your own MSBuild loggers and tasks. Дополнительные сведения см. в разделе MSBuild. For information, see MSBuild.

Классы

AppDomainIsolatedTask

Этот класс предоставляет те же возможности, что и класс Task, но он наследуется от MarshalByRefObject, что позволяет создать его экземпляры в собственном домене приложения.This class provides the same functionality as the Task class, but derives from MarshalByRefObject so that it can be instantiated in its own app domain.

AssemblyFoldersExInfo

Содержит сведения о записях в разделах реестра AssemblyFoldersEx.Contains information about entries in the AssemblyFoldersEx registry keys.

AssemblyFoldersFromConfigInfo

Представляет сведения о папках сборки.Represents information about assembly folders.

CanonicalTrackedInputFiles

Данный класс является интерпретатором журнала отслеживания файлов для журналов .read.This class is the filetracking log interpreter for .read. tracking в канонической форме или журналов, которые были помещены в корневую папку (^), чтобы сделать их каноническимиtracking logs in canonical form or those that have been rooted (^) to make them canonical

CanonicalTrackedOutputFiles

Данный класс является интерпретатором журнала отслеживания файлов для журналов .write.This class is the filetracking log interpreter for .write. tracking в канонической форме. Канонические журналы .write.tracking logs in canonical form Canonical .write. должны помещаться в корневую папку, поскольку результаты необходимо связать с входными данными.logs need to be rooted, since the outputs need to be associated with an input.

CommandLineBuilder

(1) убедитесь, что значения, содержащие дефисы, заключены в кавычки (по крайней мере, для версии-КАНДИДАТа) (2) экранирование любых внедренных кавычек.(1) Make sure values containing hyphens are quoted (RC at least requires this) (2) Escape any embedded quotes. --Литеральные двойные кавычки должны быть записаны в виде " не "" — обратная косая черта непосредственно перед даублекуотес должна быть удвоена.-- Literal double quotes should be written in the form " not "" -- Backslashes falling just before doublequotes must be doubled. --Литеральные двойные кавычки могут встречаться только в парах (нельзя передавать одинарные двойные кавычки) — функциональные двойные кавычки (например, для управления пробелами) лучше всего полагаться на имена и значения в параметрах, таких как/Днаме = value.-- Literal double quotes can only occur in pairs (you cannot pass a single literal double quote) -- Functional double quotes (for example to handle spaces) are best put around both name and value in switches like /Dname=value.

FileTracker

Данный класс содержит служебные функции для инкапсуляции операций запуска и ведения журнала для средства отслеживанияThis class contains utility functions to encapsulate launching and logging for the Tracker

FlatTrackingData

Класс, используемый для хранения и опроса входных и выходных данных, записанных при операциях отслеживания.Class used to store and interrogate inputs and outputs recorded by tracking operations.

Logger

Этот вспомогательный базовый класс предоставляет функциональные возможности по умолчанию для средств ведения журнала, которые обрабатывали события, вызванные обработчиком сборки.This helper base class provides default functionality for loggers that handle events raised by the build engine. Этот класс можно создать только в производной форме.This class can only be instantiated in a derived form.

MuxLogger

Это средство ведения журнала с мультиплексированием.This is a multiplexing logger. Назначение этого средства ведения журнала — регистрация и отмена регистрации множества средств ведения журнала во время сборки.The purpose of this logger is to allow the registration and deregistration of multiple loggers during the build. Оно поддерживает сценарий использования интегрированной среды разработки Visual Studio, в котором средства ведения журнала регистрируются и лишаются регистрации для каждого запроса на сборку системы проектов.This is to support the VS IDE scenario where loggers are registered and unregistered for each project system's build request. Это означает, что одна физическая сборка может иметь множество логических сборок, каждая из которых будет иметь свой набор средств ведения журнала.This means one physical build may have multiple logical builds each with their own set of loggers.

MuxLogger самостоятельно регистрируется в диспетчере сборки как стандартное центральное средство ведения журнала в /l-стиле.The Mux logger will register itself with the build manager as a regular central /l style logger. Оно будет получать от диспетчера сборки сообщения и направлять их нужному средству ведения журнала в зависимости от того, к какой логической сборке относится сообщение.It will be responsible for receiving messages from the build manager and route them to the correct logger based on the logical build the message came from.

Требования: 1. Средство ведения журнала с мультиплексированием будет зарегистрировано при начале сборки в диспетчере. Если какое-либо средство ведения журнала регистрируется до фактического начала сборки в диспетчере, события начала сборки для него и для MuxLogger по времени будут совпадать. Если же средство ведения журнала регистрируется после запуска сборки в диспетчере, для него будет синтезироваться свое событие начала сборки.Requirements: 1) Multiplexing logger will be registered at the beginning of the build manager's Begin build Any loggers registered before the build manager actually started building will get the build started event at the same time as the MUX logger Any loggers registered after the build manager starts the build will get a synthesised build started event. Это событие не может кэшироваться, так как метка времени события начала сборки определяется при создании события. При кэшировании для события указывалось бы неверное время сборки в зарегистрированных в MuxLogger средствах ведения журнала.The event cannot be cached because the timestamp of the build started event is determined when the event is created, caching the event would give incorrect build times in the loggers registered to the MUX.

2. Средство MuxLogger инициализируется диспетчером сборки.2) The MUX logger will be initialized by the build manager. Это средство будет ожидать от диспетчера передачу данных по всем событиям с источника и должным образом перенаправлять события другим зарегистрированным средствам.The mux will listen to all events on the event source from the build manager and will route events correctly to the registered loggers.

3. Работа MuxLogger будет завершена после окончания сборки.3) The MUX logger will be shutdown when the build is finished in end build . В этот момент будет отменена регистрация всех прикрепленных к нему средств ведения журнала.At this time it will un-register any loggers attached to it.

4. MuxLogger регистрирует событие завершения сборки, когда для каждого первого события запуска проекта появляется событие завершения проекта в каждом средстве ведения журнала.4) The MUX logger will log the build finished event when the project finished event for the first project started event is seen for each logger.

Регистрация средств ведения журналаRegistering Loggers: Средство ведения журнала с мультиплексированием будет работать следующим образом. Средство ведения журнала передается методу MuxLogger "RegisterLogger" с указанием ИД отправки, который будет использоваться для направления этому средству сообщений.The multiplexing logger will function in the following way: A logger will be passed to the MUX Register logger method with a submission ID which will be used to route a the message to the correct logger. Будет создан новый источник событий, на котором можно зарегистрировать переданное средство. Если событие начала сборки уже зарегистрировано, то MuxLogger создаст новое событие BuildStartedEvent и отправит его на источник.A new event source will be created so that the logger passed in can be registered to that event source If the build started event has already been logged the MUX logger will create a new BuildStartedEvent and send that to the event source.

Метод UnregisterLoggers: после завершения отправки сборки будет вызван метод UnregisterLoggers с соответствующим ИД отправки.UnregisterLoggers: When a build submission is completed the UnregisterLoggers method will be called with the submission ID. На этом этапе по ИД отправки проверяется состояние события завершения проекта (успешно или сбой), и в средстве ведения журнала регистрируется событие завершения сборки.At this point we will look up the success state of the project finished event for the submission ID and log a build finished event to the logger. Источник событий будет очищен.The event source will be cleaned up. Это может представлять интерес, так как отмена регистрации будет производиться не из того потока, в котором ведется журнал.This may be interesting because the unregister will come from a thread other than what is doing the logging. Из-за этого может возникнуть проблема с синхронизацией, когда отмена регистрации вызывается во время записи событий.This may create a Synchronization issue, if unregister is called while events are being logged.

ProcessorArchitecture

Служебные программы для архитектуры процессораProcessor architecture utilities

SDKManifest

Структура, представляющая сведения из файла SDKManifest.xml.Structure to represent the information contained in SDKManifest.xml

SDKManifest.Attributes

Вспомогательный класс с атрибутами SDKManifest.xmlHelper class with attributes of SDKManifest.xml

TargetPlatformSDK

Структура, представляющая пакет SDK для целевой платформыStructure to represent a target platform sdk

Task

Этот вспомогательный базовый класс предоставляет функциональные возможности по умолчанию для задач.This helper base class provides default functionality for tasks. Этот класс можно создать только в производной форме.This class can only be instantiated in a derived form.

TaskItem

Этот класс представляет отдельный элемент проекта при передаче в задачу.This class represents a single item of the project, as it is passed into a task. Все TaskItems не в точности соответствуют элементам в файлах проекта, так как у задач есть доступ к данным, которые не были явно переданы в задачу через файл проекта.TaskItems do not exactly correspond to item elements in project files, because then tasks would have access to data that wasn't explicitly passed into the task via the project file. Это не проблема системы безопасности, а, скорее, проблема с ясностью и прозрачностью файла проекта.It's not a security issue, but more just an issue with project file clarity and transparency.

Примечание. Этот класс должен быть запечатанным.Note: This class has to be sealed. Он должен быть запечатан, поскольку обработчик создает собственную копию этого типа и, таким образом, если кто-то будет его расширять, он не сможет получить желаемое поведение от ядра.It has to be sealed because the engine instantiates it's own copy of this type and thus if someone were to extend it, they would not get the desired behavior from the engine.

TaskLoggingHelper

Вспомогательный класс ведения журнала, который содержит все методы для ведения журнала, используемые задачами.Helper logging class - contains all the logging methods used by tasks. Объект TaskLoggingHelper передается в каждую задачу MSBuild.A TaskLoggingHelper object is passed to every task by MSBuild. Для задач, производных от класса Task, он предоставляется через свойство Log.For tasks that derive from the Task class, it is provided in the Log property. Этот класс является потокобезопасным, то есть задачи могут записывать данные в журнал из любых потоков.This class is thread safe: tasks can log from any threads.

ToolLocationHelper

Туллокатионхелпер предоставляет служебные методы для поиска .NET Framework и .NET Framework каталогов и файлов пакета SDK.ToolLocationHelper provides utility methods for locating .NET Framework and .NET Framework SDK directories and files. Примечание. все открытые методы этого класса доступны в проектах MSBuild для использования в функциях. они должны быть небезопасны для использования во время оценки проекта.NOTE: All public methods of this class are available to MSBuild projects for use in functions - they must be safe for use during project evaluation.

ToolTask

Базовый класс, используемый для задач, порождающих исполняемый файл.Base class used for tasks that spawn an executable. Этот класс реализует свойство ToolPath, которое можно использовать для переопределения пути по умолчанию.This class implements the ToolPath property which can be used to override the default path.

TrackedDependencies

Данный класс содержит служебные функции, помогающие при отслеживании зависимостейThis class contains utility functions to assist with tracking dependencies

Перечисления

DotNetFrameworkArchitecture

Используется для указания разрядности целевой платформы .NET Framework для некоторых методов ToolLocationHelperUsed to specify the targeted bitness of the .NET Framework for some methods of ToolLocationHelper

ExecutableType

Перечисление, представляющее тип исполняемого файла, заключенного в оболочку программы Tracker.exeEnumeration to express the type of executable being wrapped by Tracker.exe

HostObjectInitializationStatus

Возвращаемое значение из Инитиализехостобжект. Это перечисление определяет действие, которое должен предпринять ToolTask, после попытки инициализировать объект узла.This enumeration defines what action the ToolTask should take next, after we've tried to initialize the host object.

MultipleVersionSupport

Что должно произойти при нахождении нескольких версий семейства продуктов или пакета SDK с указанным именем.What should happen if multiple versions of a given productfamily or sdk name are found

SDKType

Тип пакета SDKType of SDK

TargetDotNetFrameworkVersion

Используется для указания целевой версии .NET Framework для некоторых методов Туллокатионхелпер.Used to specify the targeted version of the .NET Framework for some methods of ToolLocationHelper.

UpToDateCheckType

Возможные поддерживаемые типы проверки обновленияThe possible types of up to date check that we can support

VisualStudioVersion

Используется для указания версии Visual Studio, из которой следует выбрать связанные средства для некоторых методов ToolLocationHelperUsed to specify the version of Visual Studio from which to select associated tools for some methods of ToolLocationHelper

Делегаты

DependencyFilter

Делегат фильтра зависимостей.Dependency filter delegate. Используется в ходе операций сохранения журнала отслеживания, чтобы позволить задачам выборочно удалять зависимости из записанного графа.Used during TLog saves in order for tasks to selectively remove dependencies from the written graph.