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. 여러 ProjectCollection이 한 appdomain 내에 존재할 수 있습니다.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을 throw할 수 있습니다.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을 throw합니다.Throws InvalidProjectFileException if any of the global properties are reserved. InvalidToolsetDefinitionException을 throw할 수 있습니다.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을 throw합니다.Throws InvalidProjectFileException if any of the global properties are reserved. InvalidToolsetDefinitionException을 throw할 수 있습니다.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을 throw할 수 있습니다.May throw InvalidToolsetDefinitionException.

ProjectCollection(ToolsetDefinitionLocations)

지정된 위치의 도구 집합을 사용하고 전역 속성 또는 로거가 없는 프로젝트 컬렉션을 인스턴스화합니다.Instantiates a project collection using toolsets from the specified locations, and no global properties or loggers. InvalidToolsetDefinitionException을 throw할 수 있습니다.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". 제공된 도구 버전의 도구 집합이 정의되지 않은 경우 setter는 InvalidOperationException을 throw합니다.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을 throw할 수 있습니다.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로 설정할 수 있지만, 그럴 경우 getter가 새 인스턴스를 만듭니다.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. API 호환을 위해 여기에 있어야 합니다.Has 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)

표준 프레임워크 지침 Dispose 패턴을 따릅니다.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. 언로드되지 않은 경우 로드된 Project에서 계속 사용 중이므로 false를 반환합니다.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을 throw합니다.If project was not already loaded, throws InvalidOperationException.

UnloadProject(ProjectRootElement)

weak 캐시에서 프로젝트 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.

적용 대상