다음을 통해 공유


MarkupCompilePass1 작업

MarkupCompilePass1 작업은 지역화할 수 없는 Extensible Application Markup Language (XAML) 프로젝트 파일을 컴파일된 이진 형식으로 변환합니다.

작업 매개 변수

Parameter

설명

AllGeneratedFiles

선택적 ITaskItem[] 출력 매개 변수입니다.

MarkupCompilePass1 작업에서 생성되는 전체 파일 목록을 포함합니다.

AlwaysCompileMarkupFilesInSeparateDomain

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

작업을 별도의 AppDomain에서 실행할 것인지 여부를 지정합니다. 이 매개 변수에서 false를 반환하면 작업이 같은 AppDomain에서 Microsoft build engine (MSBuild)로 실행되며 이 경우 실행 속도가 더 빠릅니다. 매개 변수에서 true를 반환하면 작업이 MSBuild에서 격리된 두 번째 AppDomain에서 실행되며 이 경우 실행 속도가 더 느립니다.

ApplicationMarkup

선택적 ITaskItem[] 매개 변수입니다.

응용 프로그램 정의 XAML 파일의 이름을 지정합니다.

AssembliesGeneratedDuringBuild

선택적 String[] 매개 변수입니다.

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

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

AssemblyName

필수 string 매개 변수입니다.

프로젝트에 대해 생성되는 어셈블리의 약식 이름을 지정합니다. 예를 들어 프로젝트에서 이름이 WinExeAssembly.exe인 Windows 실행 파일을 생성하는 경우 AssemblyName 매개 변수의 값은 WinExeAssembly입니다.

AssemblyPublicKeyToken

선택적 String 매개 변수입니다.

어셈블리의 공개 키 토큰을 지정합니다.

AssemblyVersion

선택적 String 매개 변수입니다.

어셈블리의 버전 번호를 지정합니다.

ContentFiles

선택적 ITaskItem[] 매개 변수입니다.

느슨한 콘텐츠 파일의 목록을 지정합니다.

DefineConstants

선택적 String 매개 변수입니다.

대상 어셈블리 생성에 영향을 주는 DefineConstants의 현재 값이 유지됨을 지정합니다. 이 매개 변수가 변경되면 대상 어셈블리의 공용 API가 변경되고 로컬 형식을 참조하는 XAML 파일의 컴파일에 영향을 미칠 수 있습니다.

ExtraBuildControlFiles

선택적 ITaskItem[] 매개 변수입니다.

MarkupCompilePass1 작업이 재실행될 때 재빌드를 트리거하는지 여부를 제어하는 파일의 목록을 지정합니다. 이 파일 중 하나가 변경되면 재빌드가 트리거됩니다.

GeneratedBamlFiles

선택적 ITaskItem[] 출력 매개 변수입니다.

생성되는 파일의 목록을 XAML 이진 형식으로 포함합니다.

GeneratedCodeFiles

선택적 ITaskItem[] 출력 매개 변수입니다.

생성되는 관리 코드 파일의 목록을 포함합니다.

GeneratedLocalizationFiles

선택적 ITaskItem[] 출력 매개 변수입니다.

지역화 가능한 각 XAML 파일에 대해 생성된 지역화 파일의 목록을 포함합니다.

HostInBrowser

선택적 String 매개 변수입니다.

생성되는 어셈블리가 XAML browser application (XBAP)인지 여부를 지정합니다. 유효한 옵션은 truefalse입니다. true이면 브라우저 호스팅을 지원하기 위해 코드가 생성됩니다.

KnownReferencePaths

선택적 String[] 매개 변수입니다.

빌드 프로세스 동안 변경되지 않는 어셈블리에 대한 참조를 지정합니다. global assembly cache (GAC), Microsoft .NET Framework 설치 디렉터리 등에 있는 어셈블리를 포함합니다.

Language

필수 String 매개 변수입니다.

컴파일러가 지원하는 관리되는 언어를 지정합니다. 유효한 옵션은 C#, VB, JScript, J#C++입니다.

LanguageSourceExtension

선택적 String 매개 변수입니다.

생성되는 관리 코드 파일의 확장명에 추가되는 확장명을 지정합니다.

<Filename>.g<LanguageSourceExtension>

LanguageSourceExtension 매개 변수에 특정 값을 설정하지 않은 경우 언어의 기본 소스 파일 이름 확장명이 사용됩니다. 예를 들어 Microsoft Visual Basic의 경우에는 .vb가 사용되고, C#의 경우에는 .csharp이 사용됩니다.

LocalizationDirectivesToLocFile

선택적 String 매개 변수입니다.

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

OutputPath

필수 String 매개 변수입니다.

생성되는 관리 코드 파일과 XAML 이진 형식 파일이 생성되는 디렉터리를 지정합니다.

OutputType

필수 String 매개 변수입니다.

프로젝트에 의해 생성되는 어셈블리의 형식을 지정합니다. 유효한 옵션은 winexe, exe, librarynetmodule입니다.

PageMarkup

선택적 ITaskItem[] 매개 변수입니다.

처리할 XAML 파일의 목록을 지정합니다.

References

선택적 ITaskItem[] 매개 변수입니다.

XAML 파일에 사용되는 형식이 포함된 어셈블리에 대한 파일 참조의 목록을 지정합니다.

RequirePass2ForMainAssembly

선택적 Boolean 출력 매개 변수입니다.

기본 어셈블리에 포함되는 로컬 형식을 참조하는 지역화할 수 없는 XAML 파일이 프로젝트에 포함되는지 여부를 지정합니다.

RequirePass2ForSatelliteAssembly

선택적 Boolean 출력 매개 변수입니다.

기본 어셈블리에 포함되는 로컬 형식을 참조하는 지역화할 수 있는 XAML 파일이 프로젝트에 포함되는지 여부를 지정합니다.

RootNamespace

선택적 String 매개 변수입니다.

프로젝트 내부에 있는 클래스에 대한 루트 네임스페이스를 지정합니다. RootNamespace는 해당 XAML 파일에 x:Class 특성이 포함되어 있지 않을 경우, 생성되는 관리 코드 파일의 기본 네임스페이스로도 사용됩니다.

SourceCodeFiles

선택적 ITaskItem[] 매개 변수입니다.

현재 프로젝트의 코드 파일 목록을 지정합니다. 생성되는 언어 특정 관리 코드 파일은 목록에 포함되지 않습니다.

UICulture

선택적 String 매개 변수입니다.

생성되는 XAML 이진 형식 파일이 포함되는 UI 문화권의 위성 어셈블리를 지정합니다. UICulture를 설정하지 않은 경우 생성되는 XAML 이진 형식 파일은 기본 어셈블리에 포함됩니다.

XAMLDebuggingInformation

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

true인 경우 디버깅에 도움이 되도록 진단 정보가 생성되어 컴파일된 XAML에 포함됩니다.

설명

MarkupCompilePass1 작업은 일반적으로 XAML을 이진 형식으로 컴파일하고 코드 파일을 생성합니다. XAML 파일에 같은 프로젝트에서 정의된 형식에 대한 참조가 포함되어 있는 경우 MarkupCompilePass1은 이진 형식으로의 컴파일을 두 번째 태그 컴파일 패스(MarkupCompilePass2)로 연기합니다. 이러한 파일은 참조된 로컬 정의 형식이 컴파일될 때까지 기다려야 하므로 컴파일이 연기되어야 합니다. 하지만 XAML 파일에 x:Class 특성이 있는 경우에는 MarkupCompilePass1에서 이를 위한 언어 특정 코드 파일을 생성합니다.

XAML 파일은 x:Uid 특성을 사용하는 요소를 포함하는 경우 지역화가 가능합니다.

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

XAML 파일은 현재 프로젝트의 네임스페이스를 참조하기 위해 clr-namespace 값을 사용하는 XML 네임스페이스를 선언할 때, 로컬로 정의된 형식을 참조합니다.

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

XAML 파일이 지역화 가능하거나 로컬로 정의된 형식을 참조하는 경우에는 두 번째 태그 컴파일 패스가 필요합니다. 이 경우 GenerateTemporaryTargetAssembly 작업를 실행한 다음 MarkupCompilePass2 작업를 실행해야 합니다.

예제

다음 예제에서는 세 개의 Page XAML 파일을 이진 형식 파일로 변환하는 방법을 보여 줍니다. Page1에는 Class1 형식에 대한 참조가 포함되어 있습니다. 이 형식은 프로젝트의 루트 네임스페이스에 있으므로 이 태그 컴파일 패스에서 이진 형식 파일로 변환되지 않습니다. 대신 GenerateTemporaryTargetAssembly 작업이 실행된 다음 MarkupCompilePass2 작업이 실행됩니다.

<Project xmlns="https://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>

참고 항목

개념

WPF 응용 프로그램 만들기(WPF)

WPF XAML 브라우저 응용 프로그램 개요

기타 리소스

WPF MSBuild 참조

WPF MSBuild 작업 참조

MSBuild 참조

MSBuild 작업 참조