MarkupCompilePass1 작업MarkupCompilePass1 Task

MarkupCompilePass1 작업은 지역화할 수 없는 XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML) 프로젝트 파일을 컴파일된 이진 형식 파일로 변환합니다.The MarkupCompilePass1 task converts non-localizable XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML) project files to compiled binary format.

작업 매개 변수Task Parameters

매개 변수Parameter 설명Description
AllGeneratedFiles 선택적 ITaskItem 출력 매개 변수입니다.Optional ITaskItem[] output parameter.

MarkupCompilePass1 작업에 의해 생성되는 파일의 전체 목록을 포함합니다.Contains a complete list of files that are generated by the MarkupCompilePass1 task.
AlwaysCompileMarkupFilesInSeparateDomain 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

별도의 AppDomain에서 작업을 실행할지 여부를 지정합니다.Specifies whether to run the task in a separate AppDomain. 이 매개 변수가 false를 반환하는 경우 작업은 MSBuild(Microsoft Build Engine)Microsoft build engine (MSBuild)와 동일한 AppDomain에서 더 빠르게 실행됩니다.If this parameter returns false, the task runs in the same AppDomain as MSBuild(Microsoft Build Engine)Microsoft build engine (MSBuild) and it runs faster. 이 매개 변수가 true를 반환하는 경우 작업은 MSBuildMSBuild에서 분리된 또 다른 AppDomain에서 실행되며 더 느리게 실행됩니다.If the parameter returns true, the task runs in a second AppDomain that is isolated from MSBuildMSBuild and runs slower.
ApplicationMarkup 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

응용 프로그램 정의 XAMLXAML 파일의 이름을 지정합니다.Specifies the name of the application definition XAMLXAML file.
AssembliesGeneratedDuringBuild 선택적 String[] 매개 변수입니다.Optional String[] parameter.

빌드 프로세스 중에 변경되는 어셈블리에 대한 참조를 지정합니다.Specifies references to assemblies that change during the build process. 예를 들어 Microsoft Visual Studio 2005Microsoft Visual Studio 2005 솔루션에는 다른 프로젝트의 컴파일된 출력을 참조하는 하나의 프로젝트가 포함될 수 있습니다.For example, a Microsoft Visual Studio 2005Microsoft Visual Studio 2005 solution may contain one project that references the compiled output of another project. 이 경우 두 번째 프로젝트의 컴파일된 출력을 AssembliesGeneratedDuringBuild 매개 변수에 추가할 수 있습니다.In this case, the compiled output of the second project can be added to the AssembliesGeneratedDuringBuild parameter.

참고: AssembliesGeneratedDuringBuild 매개 변수는 빌드 솔루션에 의해 생성되는 어셈블리의 전체 집합에 대한 참조를 포함해야 합니다.Note: The AssembliesGeneratedDuringBuild parameter must contain references to the complete set of assemblies that are generated by a build solution.
AssemblyName 필수 문자열 매개 변수입니다.Required string parameter.

프로젝트에 대해 생성되는 어셈블리의 약식 이름을 지정합니다.Specifies the short name of the assembly that is generated for a project. 예를 들어 프로젝트가 이름이 WinExeAssembly.exeWindows 실행 파일을 생성하는 경우 AssemblyName 매개 변수는 WinExeAssembly 값을 갖습니다.For example, if a project is generating a Windows executable whose name is WinExeAssembly.exe, the AssemblyName parameter has a value of WinExeAssembly.
AssemblyPublicKeyToken 선택적 문자열 매개 변수입니다.Optional String parameter.

어셈블리의 공개 키 토큰을 지정합니다.Specifies the public key token for the assembly.
AssemblyVersion 선택적 문자열 매개 변수입니다.Optional String parameter.

어셈블리의 버전 번호를 지정합니다.Specifies the version number of the assembly.
ContentFiles 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

느슨한 콘텐츠 파일의 목록을 지정합니다.Specifies the list of loose content files.
DefineConstants 선택적 문자열 매개 변수입니다.Optional String parameter.

현재 값 DefineConstants가 유지되도록 지정합니다.Specifies that the current value of DefineConstants, is kept. 대상 어셈블리 생성에 영향을 미칩니다. 이 매개 변수가 변경되면 대상 어셈블리의 공용 API를 변경할 수 있으며 로컬 형식을 참조하는 XAMLXAML 파일의 컴파일에 영향을 줄 수 있습니다.which affects target assembly generation; if this parameter is changed, the public API in the target assembly may be changed and the compilation of XAMLXAML files that reference local types may be affected.
ExtraBuildControlFiles 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

MarkupCompilePass1 작업이 다시 실행될 때 다시 빌드가 트리거되는지 여부를 제어하는 파일의 목록을 지정합니다. 이러한 파일 중 하나가 변경되면 다시 빌드가 트리거됩니다.Specifies a list of files that control whether a rebuild is triggered when the MarkupCompilePass1 task reruns; a rebuild is triggered if one of these files changes.
GeneratedBamlFiles 선택적 ITaskItem 출력 매개 변수입니다.Optional ITaskItem[] output parameter.

XAMLXAML 이진 형식으로 생성된 파일 목록을 포함합니다.Contains the list of generated files in XAMLXAML binary format.
GeneratedCodeFiles 선택적 ITaskItem 출력 매개 변수입니다.Optional ITaskItem[] output parameter.

생성된 관리 코드 파일의 목록을 포함합니다.Contains the list of generated managed code files.
GeneratedLocalizationFiles 선택적 ITaskItem 출력 매개 변수입니다.Optional ITaskItem[] output parameter.

지역화할 수 있는 각 XAMLXAML 파일에 대해 생성된 지역화 파일의 목록을 포함합니다.Contains the list of localization files that were generated for each localizable XAMLXAML file.
HostInBrowser 선택적 문자열 매개 변수입니다.Optional String parameter.

생성된 어셈블리가 XBAP(XAML 브라우저 응용 프로그램)XAML browser application (XBAP)인지 여부를 지정합니다.Specifies whether the generated assembly is a XBAP(XAML 브라우저 응용 프로그램)XAML browser application (XBAP). 유효한 옵션은 truefalse입니다.The valid options are true and false. true이면 브라우저 호스팅을 지원하기 위한 코드가 생성됩니다.If true, code is generated to support browser hosting.
KnownReferencePaths 선택적 String[] 매개 변수입니다.Optional String[] parameter.

빌드 프로세스 중에 변경되지 않는 어셈블리에 대한 참조를 지정합니다.Specifies references to assemblies that do not change during the build process. GAC(전역 어셈블리 캐시)global assembly cache (GAC), Microsoft .NET FrameworkMicrosoft .NET Framework 설치 디렉터리 등에 있는 어셈블리를 포함합니다.Includes assemblies that are located in the GAC(전역 어셈블리 캐시)global assembly cache (GAC), in a Microsoft .NET FrameworkMicrosoft .NET Framework installation directory, and so on.
Language 필수 String 매개 변수입니다.Required String parameter.

컴파일러가 지원하는 관리되는 언어를 지정합니다.Specifies the managed language that the compiler supports. 유효한 옵션은 C#, VB, JScriptC++입니다.The valid options are C#, VB, JScript, and C++.
LanguageSourceExtension 선택적 문자열 매개 변수입니다.Optional String parameter.

생성된 관리되는 코드 파일의 확장에 추가되는 확장명을 지정합니다.Specifies the extension that is appended to the extension of the generated managed code file:

<Filename>.g<LanguageSourceExtension>

LanguageSourceExtension 매개 변수가 특정 값으로 설정되지 않으면 언어에 대한 기본 소스 파일 이름 확장명이 사용됩니다. 즉, Microsoft Visual BasicMicrosoft Visual Basic의 경우 .vb이고, C#C#의 경우 .csharp입니다.If the LanguageSourceExtension parameter is not set with a specific value, the default source file name extension for a language is used: .vb for Microsoft Visual BasicMicrosoft Visual Basic, .csharp for C#C#.
LocalizationDirectivesToLocFile 선택적 문자열 매개 변수입니다.Optional String parameter.

각 소스 XAMLXAML 파일에 대한 지역화 정보를 생성하는 방법을 지정입니다.Specifies how to generate localization information for each source XAMLXAML file. 유효한 옵션은 None, CommentsOnlyAll입니다.The valid options are None, CommentsOnly, and All.
OutputPath 필수 String 매개 변수입니다.Required String parameter.

생성된 관리 코드 파일 및 XAMLXAML 이진 형식 파일이 생성되는 디렉터리를 지정합니다.Specifies the directory in which the generated managed code files and XAMLXAML binary format files are generated.
OutputType 필수 String 매개 변수입니다.Required String parameter.

프로젝트에서 생성되는 어셈블리의 형식을 지정합니다.Specifies the type of assembly that is generated by a project. 유효한 옵션은 winexe, exe, librarynetmodule입니다.The valid options are winexe, exe, library, and netmodule.
PageMarkup 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

처리할 XAMLXAML 파일 목록을 지정합니다.Specifies a list of XAMLXAML files to process.
References 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

XAMLXAML 파일에서 사용되는 형식을 포함하는 어셈블리에 대한 파일의 참조 목록을 지정합니다.Specifies the list of references from files to assemblies that contain the types that are used in the XAMLXAML files.
RequirePass2ForMainAssembly 선택적 Boolean 출력 매개 변수입니다.Optional Boolean output parameter.

프로젝트에 주 어셈블리에 포함되는 로컬 형식을 참조하는 지역화할 수 없는 XAMLXAML 파일이 포함되는지 여부를 나타냅니다.Indicates whether the project contains non-localizable XAMLXAML files that reference local types that are embedded into the main assembly.
RequirePass2ForSatelliteAssembly 선택적 Boolean 출력 매개 변수입니다.Optional Boolean output parameter.

프로젝트에 주 어셈블리에 포함되는 로컬 형식을 참조하는 지역화할 수 있는 XAMLXAML 파일이 포함되는지 여부를 나타냅니다.Indicates whether the project contains localizable XAMLXAML files that reference local types that are embedded in the main assembly.
RootNamespace 선택적 문자열 매개 변수입니다.Optional String parameter.

프로젝트 내에 있는 클래스에 대한 루트 네임스페이스를 지정합니다.Specifies the root namespace for classes that are inside the project. RootNamespace는 해당 XAMLXAML 파일에 x:Class 특성이 포함되어 있지 않을 때 생성된 관리 코드 파일의 기본 네임스페이스로도 사용됩니다.RootNamespace is also used as the default namespace of a generated managed code file when the corresponding XAMLXAML file does not include the x:Class attribute.
SourceCodeFiles 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

현재 프로젝트에 대한 코드 파일의 목록을 지정합니다.Specifies the list of code files for the current project. 이 목록에 생성된 언어별 관리 코드 파일은 포함되지 않습니다.The list does not include generated language-specific managed code files.
UICulture 선택적 문자열 매개 변수입니다.Optional String parameter.

생성된 XAMLXAML 이진 형식 파일이 포함되는 UI 문화권에 대한 위성 어셈블리를 지정합니다.Specifies the satellite assembly for the UI culture in which the generated XAMLXAML binary format files are embedded. UICulture가 설정되지 않은 경우 생성된 XAMLXAML 이진 형식 파일은 주 어셈블리에 포함됩니다.If UICulture is not set, the generated XAMLXAML binary format files are embedded in the main assembly.
XAMLDebuggingInformation 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

true이면 디버깅에 도움을 주기 위해 진단 정보가 생성되고 컴파일된 XAMLXAML에 포함됩니다.When true, diagnostic information is generated and included in the compiled XAMLXAML in order to aid debugging.

설명Remarks

MarkupCompilePass1 작업은 일반적으로 XAMLXAML를 이진 형식으로 컴파일한 후 코드 파일을 생성합니다.The MarkupCompilePass1 task typically compiles XAMLXAML into binary format and generates code files. XAMLXAML 파일에 같은 프로젝트에 정의된 형식에 대한 참조가 포함되면 이진 형식에 대한 컴파일이 MarkupCompilePass1에 의해 두 번째 태그 컴파일 패스(MarkupCompilePass2)로 연기됩니다.If a XAMLXAML file contains references to types that are defined in the same project, its compilation to binary format is deferred by MarkupCompilePass1 to a second markup compilation pass (MarkupCompilePass2). 이러한 파일은 참조된 로컬로 정의된 형식이 컴파일될 때까지 기다려야 하므로 컴파일이 연기되어야 합니다.Such files must have their compilation deferred because they must wait until the referenced locally-defined types are compiled. 그러나 XAMLXAML 파일에 x:Class 특성이 있으면 MarkupCompilePass1은 언어별 코드 파일을 생성합니다.However, if a XAMLXAML file has an x:Class attribute, MarkupCompilePass1 generates the language-specific code file for it.

XAMLXAML 파일은 x:Uid 특성을 사용하는 요소가 포함된 경우 지역화가 가능합니다.A XAMLXAML file is localizable if it contains elements that use the x:Uid attribute:

<Page x:Class="WPFMSBuildSample.Page1"  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
    x:Uid="Page1Uid"  
    >  
  ...  
</Page>  

XAMLXAML 파일은 clr-namespace 값을 사용하여 현재 프로젝트의 네임스페이스를 참조하는 XMLXML 네임스페이스를 선언할 때 로컬로 정의된 형식을 참조합니다.A XAMLXAML file references a locally-defined type when it declares an XMLXML namespace that uses the clr-namespace value to refer to a namespace in the current project:

<Page x:Class="WPFMSBuildSample.Page1"  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
    xmlns:localNamespace="clr-namespace:WPFMSBuildSample"  
    >  
    <Grid>  
      <Grid.Resources>  
        <localNameSpace:LocalType x:Key="localType" />  
      </Grid.Resources>  
      ...  
    </Grid>  
</Page>  

지역화가 가능하거나 로컬로 정의된 형식을 참조하는 XAMLXAML 파일이 있는 경우 두 번째 태그 컴파일 패스가 필요합니다. 이를 위해 GenerateTemporaryTargetAssemblyMarkupCompilePass2가 차례로 실행되어야 합니다.If any XAMLXAML file is localizable, or references a locally-defined type, a second markup compilation pass is required, which requires running the GenerateTemporaryTargetAssembly and then the MarkupCompilePass2.

예제Example

다음 예제에서는 3개의 PageXAMLXAML 파일을 이진 형식 파일로 변환하는 방법을 보여 줍니다.The following example shows how to convert three PageXAMLXAML files to binary format files. Page1에는 형식 Class1에 대한 참조가 포함됩니다. 이 형식은 프로젝트의 루트 네임스페이스에 있으므로 이 태그 컴파일 패스에서 이진 형식 파일로 변환되지 않습니다.Page1 contains a reference to a type, Class1, which is in the root namespace of the project and therefore, is not converted to binary format files in this markup compile pass. 대신 GenerateTemporaryTargetAssembly가 실행된 다음 MarkupCompilePass2가 실행됩니다.Instead, the GenerateTemporaryTargetAssembly is executed and is followed by the MarkupCompilePass2.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
  <UsingTask   
    TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass1"   
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />  
  <Target Name="MarkupCompilePass1Task">  
    <MarkupCompilePass1   
      AssemblyName="WPFMSBuildSample"  
      Language="C#"  
      OutputType="WinExe"  
      OutputPath="obj\Debug\"  
      ApplicationMarkup="App.xaml"  
      PageMarkup="Page1.xaml;Page2.xaml;Page3.xaml"  
      SourceCodeFiles="Class1.cs"  
      References="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>  

참고 항목See Also

WPF MSBuild 참조 WPF MSBuild Reference
작업 참조 Task Reference
MSBuild 참조 MSBuild Reference
작업 참조 Task Reference
WPF 응용 프로그램 빌드(WPF) Building a WPF Application (WPF)
WPF XAML 브라우저 응용 프로그램 개요WPF XAML Browser Applications Overview