MarkupCompilePass2 작업
MarkupCompilePass2 작업은 같은 프로젝트의 형식을 참조하는 Extensible Application Markup Language (XAML) 파일에 대해 두 번째 패스 태그 컴파일을 수행합니다.
작업 매개 변수
Parameter |
설명 |
---|---|
AlwaysCompileMarkupFilesInSeparateDomain |
선택적 Boolean 매개 변수입니다. 작업을 별도의 AppDomain에서 실행할 것인지 여부를 지정합니다. 이 매개 변수에서 false를 반환하면 작업이 같은 AppDomain에서 Microsoft build engine (MSBuild)로 실행되며 이 경우 실행 속도가 더 빠릅니다. 매개 변수에서 true를 반환하면 작업이 MSBuild에서 격리된 두 번째 AppDomain에서 실행되며 이 경우 실행 속도가 더 느립니다. |
AssembliesGeneratedDuringBuild |
선택적 String[] 매개 변수입니다. 빌드 프로세스 동안 변경되는 어셈블리에 대한 참조를 지정합니다. 예를 들어 Microsoft Visual Studio 2005 솔루션에는 다른 프로젝트의 컴파일된 출력을 참조하는 하나의 프로젝트가 포함될 수 있습니다. 이 경우 두 번째 프로젝트의 컴파일된 출력이 AssembliesGeneratedDuringBuild에 추가될 수 있습니다. 참고: AssembliesGeneratedDuringBuild는 빌드 솔루션에 의해 생성되는 전체 어셈블리 집합에 대한 참조를 포함해야 합니다. |
AssemblyName |
필수 String 매개 변수입니다. 프로젝트에 대해 생성되는 어셈블리의 약식 이름을 지정합니다. 예를 들어 프로젝트에서 이름이 WinExeAssembly.exe인 Microsoft Windows 실행 파일을 생성하는 경우 AssemblyName 매개 변수의 값은 WinExeAssembly입니다. |
GeneratedBaml |
선택적 ITaskItem[] 출력 매개 변수입니다. 생성되는 파일의 목록을 XAML 이진 형식으로 포함합니다. |
KnownReferencePaths |
선택적 String[] 매개 변수입니다. 빌드 프로세스 동안 변경되지 않는 어셈블리에 대한 참조를 지정합니다. global assembly cache (GAC), Microsoft .NET Framework 설치 디렉터리 등에 있는 어셈블리를 포함합니다. |
Language |
필수 String 매개 변수입니다. 컴파일러가 지원하는 관리되는 언어를 지정합니다. 유효한 옵션은 C#, VB, JScript, J# 및 C++입니다. |
LocalizationDirectivesToLocFile |
선택적 String 매개 변수입니다. 각 소스 XAML 파일에 대한 지역화 정보를 생성하는 방법을 지정합니다. 유효한 옵션은 None, CommentsOnly 및 All입니다. |
OutputPath |
필수 String 매개 변수입니다. XAML 이진 형식 파일이 생성되는 디렉터리를 지정합니다. |
OutputType |
필수 String 매개 변수입니다. 프로젝트에 의해 생성되는 어셈블리의 형식을 지정합니다. 유효한 옵션은 winexe, exe, library 및 netmodule입니다. |
References |
선택적 ITaskItem[] 매개 변수입니다. XAML 파일에 사용되는 형식이 포함된 어셈블리에 대한 파일 참조의 목록을 지정합니다. 여기에는 GenerateTemporaryTargetAssembly 작업으로 생성된 어셈블리에 대한 참조가 포함되며 이 작업은 MarkupCompilePass2 작업 전에 실행되어야 합니다. |
RootNamespace |
선택적 String 매개 변수입니다. 프로젝트 내부에 있는 클래스에 대한 루트 네임스페이스를 지정합니다. RootNamespace는 해당 XAML 파일에 x:Class 특성이 포함되어 있지 않을 경우, 생성되는 관리 코드 파일의 기본 네임스페이스로도 사용됩니다. |
XAMLDebuggingInformation |
선택적 Boolean 매개 변수입니다. true인 경우 디버깅에 도움이 되도록 진단 정보가 생성되어 컴파일된 XAML에 포함됩니다. |
설명
MarkupCompilePass2를 실행하기 전에 태그 컴파일 패스가 연기된 XAML 파일에서 사용하는 형식이 포함된 임시 어셈블리를 생성해야 합니다. GenerateTemporaryTargetAssembly 작업을 실행하여 임시 어셈블리를 생성합니다.
생성된 임시 어셈블리에 대한 참조는 MarkupCompilePass2가 실행될 때 이 태그 컴파일 패스에 제공되므로 첫 번째 태그 컴파일 패스에서 컴파일이 연기된 XAML 파일을 이제 이진 형식으로 컴파일할 수 있습니다.
예제
다음 예제에서는 MarkupCompilePass2 작업을 사용하여 두 번째 패스 컴파일을 수행하는 방법을 보여 줍니다.
<Project xmlns="https://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>