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

이 클래스는 작업 클래스와 동일한 기능을 제공하지만 자체 앱 도메인에서 인스턴스화될 수 있도록 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 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 logs in canonical form Canonical .write. 출력을 입력과 연결해야 하므로 루트로 지정해야 합니다.logs need to be rooted, since the outputs need to be associated with an input.

CommandLineBuilder

(1) 하이픈을 포함 하는 값이 따옴표로 묶여 있는지 확인 합니다 (RC 이상에 필요 함) (2) 포함 된 따옴표를 이스케이프 합니다.(1) Make sure values containing hyphens are quoted (RC at least requires this) (2) Escape any embedded quotes. --리터럴 큰따옴표는 ""이 아닌 형식으로 작성 해야 합니다 " . doublequotes는 두 배가 되어야 합니다.-- Literal double quotes should be written in the form " not "" -- Backslashes falling just before doublequotes must be doubled. --리터럴 큰따옴표는 쌍 에서만 발생할 수 있습니다. 즉, 단일 리터럴 큰따옴표를 전달할 수 없습니다.--함수 큰따옴표 (예: 공백 처리)는/Dname = 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. 각 프로젝트 시스템의 빌드 요청에 대해 로거를 등록하거나 등록 취소하는 VS IDE 시나리오를 지원하기 위한 것입니다.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.

MUX 로거는 정규식 중앙 /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) 멀티플렉싱 로거는 빌드 관리자의 빌드 시작 이벤트 시작 부분에 등록됩니다. 빌드 관리자가 실제로 빌드를 시작하기 전에 등록된 로거는 MUX 로거와 동일한 시간에 빌드 시작됨 이벤트를 가져옵니다. 빌드 관리자가 빌드를 시작한 후에 등록된 로거는 합성된 빌드 시작됨 이벤트를 가져옵니다.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. 빌드 시작됨 이벤트의 타임스탬프는 이벤트가 생성될 때 결정되므로 이벤트를 캐시할 수 없습니다. 이벤트를 캐시하면 MUX에 등록된 로거에 잘못된 빌드 시간이 제공됩니다.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) MUX 로거가 빌드 관리자에 의해 초기화됩니다.2) The MUX logger will be initialized by the build manager. MUX가 빌드 관리자로부터 이벤트 원본의 모든 이벤트를 수신하고 등록된 로거에 이벤트를 올바르게 라우팅합니다.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) 빌드 종료에서 빌드가 완료되면 MUX 로거가 종료됩니다.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) MUX 로거는 각 로거에 대해 첫 번째 프로젝트 시작됨 이벤트의 프로젝트 완료됨 이벤트가 확인되면 빌드 완료됨 이벤트를 기록합니다.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: 멀티플렉싱 로거는 다음과 같은 방식으로 작동합니다. 메시지를 올바른 로거로 라우팅하는 데 사용될 제출 ID와 함께 로거가 MUX 등록 로거 메서드에 전달됩니다.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. 빌드 시작됨 이벤트가 이미 기록된 경우, 전달된 로거를 이벤트 원본에 등록할 수 있도록 새 이벤트 원본이 만들어집니다. MUX 로거는 새 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: 빌드 제출이 완료되면 제출 ID를 사용하여 UnregisterLoggers 메서드가 호출됩니다.UnregisterLoggers: When a build submission is completed the UnregisterLoggers method will be called with the submission ID. 이때 제출 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.xml 특성이 있는 도우미 클래스Helper 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. TaskItem은 프로젝트 파일의 항목 요소와 정확히 일치하지 않습니다. 작업이 명시적으로 프로젝트 파일을 통해 작업에 전달되지 않은 데이터에 액세스하게 되기 때문입니다.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. 작업 클래스에서 파생되는 작업의 경우 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

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

ToolLocationHelper의 일부 메서드에 대해 .NET Framework의 대상 비트를 지정하는 데 사용됩니다.Used to specify the targeted bitness of the .NET Framework for some methods of ToolLocationHelper

ExecutableType

Tracker.exe에서 래핑할 실행 파일의 형식을 나타내는 열거형입니다.Enumeration to express the type of executable being wrapped by Tracker.exe

HostObjectInitializationStatus

InitializeHostObject의 반환 값입니다. 이 열거형은 호스트 개체를 초기화 하려고 시도한 후에 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

SDK 유형Type of SDK

TargetDotNetFrameworkVersion

ToolLocationHelper의 일부 메서드에 대 한 .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

ToolLocationHelper의 일부 메서드에 대한 관련된 도구를 선택할 Visual Studio 버전을 지정하는 데 사용됩니다.Used to specify the version of Visual Studio from which to select associated tools for some methods of ToolLocationHelper

대리자

DependencyFilter

종속성 필터 대리자입니다.Dependency filter delegate. 기록된 그래프에서 종속성을 선택적으로 제거하는 작업을 위해 TLog를 저장하는 동안 사용됩니다.Used during TLog saves in order for tasks to selectively remove dependencies from the written graph.