MarkupCompilePass2 작업

MarkupCompilePass2 작업은 같은 프로젝트의 형식을 참조하는 XAML 파일에 대해 두 번째 패스 마크업 컴파일을 수행합니다.

작업 매개 변수

매개 변수 설명
AlwaysCompileMarkupFilesInSeparateDomain 선택적 Boolean 매개 변수입니다.

별도의 AppDomain에서 작업을 실행할지 여부를 지정합니다. 이 매개 변수가 false를 반환하는 경우 작업은 MSBuild와 동일한 AppDomain에서 더 빠르게 실행됩니다. 이 매개 변수가 true를 반환하는 경우 작업은 MSBuild에서 분리된 또 다른 AppDomain에서 더 느리게 실행됩니다.
AssembliesGeneratedDuringBuild 선택적 String[] 매개 변수입니다.

빌드 프로세스 중에 변경되는 어셈블리에 대한 참조를 지정합니다. 예를 들어 Visual Studio 솔루션에는 다른 프로젝트의 컴파일된 출력을 참조하는 하나의 프로젝트가 포함될 수 있습니다. 이 경우 두 번째 프로젝트의 컴파일된 출력을 AssembliesGeneratedDuringBuild에 추가할 수 있습니다.

참고: AssembliesGeneratedDuringBuild는 빌드 솔루션에 의해 생성되는 어셈블리의 전체 집합에 대한 참조를 포함해야 합니다.
AssemblyName 필수 String 매개 변수입니다.

프로젝트에 대해 생성되는 어셈블리의 약식 이름을 지정합니다. 예를 들어 프로젝트가 WinExeAssembly.exe라는 이름의 실행 파일을 생성하는 경우 AssemblyName 매개 변수는 WinExeAssembly 값을 갖습니다.
GeneratedBaml 선택적 ITaskItem 출력 매개 변수입니다.

XAML 이진 형식으로 생성된 파일 목록을 포함합니다.
KnownReferencePaths 선택적 String[] 매개 변수입니다.

빌드 프로세스 중에 절대 변경되지 않는 어셈블리에 대한 참조를 지정합니다. 전역 어셈블리 캐시(GAC), .NET 설치 디렉터리 등에 있는 어셈블리를 포함합니다.
Language 필수 String 매개 변수입니다.

컴파일러가 지원하는 관리되는 언어를 지정합니다. 유효한 옵션은 C#, VB, JScriptC++입니다.
LocalizationDirectivesToLocFile 선택적 String 매개 변수입니다.

각 소스 XAML 파일에 대한 지역화 정보를 생성하는 방법을 지정합니다. 유효한 옵션은 None, CommentsOnlyAll입니다.
OutputPath 필수 String 매개 변수입니다.

생성된 XAML 이진 형식 파일이 생성되는 디렉터리를 지정합니다.
OutputType 필수 String 매개 변수입니다.

프로젝트에서 생성되는 어셈블리의 형식을 지정합니다. 유효한 옵션은 winexe, exe, librarynetmodule입니다.
References 선택적 ITaskItem[] 매개 변수입니다.

XAML 파일에서 사용되는 형식을 포함하는 어셈블리에 대한 파일의 참조 목록을 지정합니다. 한 가지 참조는 GenerateTemporaryTargetAssembly 작업에 의해 생성된 어셈블리에 대한 것입니다. 이 작업은 MarkupCompilePass2 작업 전에 실행되어야 합니다.
RootNamespace 선택적 String 매개 변수입니다.

프로젝트 내에 있는 클래스에 대한 루트 네임스페이스를 지정합니다. RootNamespace는 해당 XAML 파일에 x:Class 특성이 포함되어 있지 않을 때 생성된 관리 코드 파일의 기본 네임스페이스로도 사용됩니다.
XAMLDebuggingInformation 선택적 Boolean 매개 변수입니다.

true이면 디버깅에 도움을 주기 위해 진단 정보가 생성되고 컴파일된 XAML에 포함됩니다.

설명

MarkupCompilePass2를 실행하기 전에 해당 마크업 컴파일 패스가 지연된 XAML 파일에서 사용되는 형식을 포함하는 임시 어셈블리를 생성해야 합니다. GenerateTemporaryTargetAssembly 작업을 실행하여 임시 어셈블리를 생성합니다.

생성된 임시 어셈블리에 대한 참조가 MarkupCompilePass2 작업이 실행될 때 제공되어 첫 번째 마크업 컴파일 패스에서 컴파일이 지연되었던 XAML 파일이 이진 형식으로 컴파일되도록 합니다.

예시

다음 예제에서는 MarkupCompilePass2 작업을 사용하여 두 번째 패스 컴파일을 수행하는 방법을 보여 줍니다.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask
    TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass2"
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="MarkupCompilePass2Task">
    <MarkupCompilePass2
      AssemblyName="WPFMSBuildSample"
      Language="C#"
      OutputType="WinExe"
      OutputPath="obj\Debug\"
      References=".\obj\debug\WPFMSBuildSample.exe;c:\windows\Microsoft.net\Framework\v2.0.50727\System.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationCore.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationFramework.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\WindowsBase.dll" />
  </Target>
</Project>

참고 항목