GenerateTemporaryTargetAssembly 작업GenerateTemporaryTargetAssembly Task

프로젝트에서 하나 이상의 XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML) 페이지가 해당 프로젝트에서 로컬로 선언된 형식을 참조할 경우 GenerateTemporaryTargetAssembly 작업은 어셈블리를 생성합니다.The GenerateTemporaryTargetAssembly task generates an assembly if at least one XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML) page in a project references a type that is declared locally in that project. 생성된 어셈블리는 빌드 프로세스가 완료된 후 또는 빌드 프로세스가 실패하는 경우에 제거됩니다.The generated assembly is removed after the build process is completed, or if the build process fails.

작업 매개 변수Task Parameters

매개 변수Parameter 설명Description
AssemblyName 필수 String 매개 변수입니다.Required String parameter.

프로젝트에 대해 생성되었으며, 일시적으로 생성된 대상 어셈블리의 이름이기도 하는 어셈블리에 대한 짧은 이름을 지정합니다.Specifies the short name of the assembly that is generated for a project and is also the name of the target assembly that is temporarily generated. 예를 들어 프로젝트가 이름이 WinExeAssembly.exeWindows 실행 파일을 생성하는 경우 AssemblyName 매개 변수는 WinExeAssembly 값을 갖습니다.For example, if a project generates a Windows executable whose name is WinExeAssembly.exe, the AssemblyName parameter has a value of WinExeAssembly.
CompileTargetName 필수 String 매개 변수입니다.Required String parameter.

소스 코드 파일에서 어셈블리를 생성 하는 데 사용되는 MSBuild(Microsoft Build Engine)Microsoft build engine (MSBuild) 대상의 이름을 지정합니다.Specifies the name of the MSBuild(Microsoft Build Engine)Microsoft build engine (MSBuild) target that is used to generate assemblies from source code files. CompileTargetName의 일반적인 값은 CoreCompile입니다.The typical value for CompileTargetName is CoreCompile.
CompileTypeName 필수 String 매개 변수입니다.Required String parameter.

CompileTargetName 매개 변수로 지정된 대상에 의해 수행되는 컴파일 형식을 지정합니다.Specifies the type of compilation that is performed by the target that is specified by the CompileTargetName parameter. CoreCompile 대상의 경우 이 값은 Compile입니다.For the CoreCompile target, this value is Compile.
CurrentProject 필수 String 매개 변수입니다.Required String parameter.

임시 대상 어셈블리를 필요로 하는 프로젝트에 대한 MSBuildMSBuild 프로젝트 파일의 전체 경로를 지정합니다.Specifies the full path of the MSBuildMSBuild project file for the project that requires a temporary target assembly.
GeneratedCodeFiles 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

MarkupCompilePass1 작업에 의해 생성된 언어별 관리 코드 파일의 목록을 지정합니다.Specifies the list of language-specific managed code files that were generated by the MarkupCompilePass1 task.
IntermediateOutputPath 필수 String 매개 변수입니다.Required String parameter.

임시 대상 어셈블리가 생성되는 디렉터리를 지정합니다.Specifies the directory that the temporary target assembly is generated to.
MSBuildBinPath 필수 String 매개 변수입니다.Required String parameter.

임시 대상 어셈블리를 컴파일하는 데 필요한 MSBuild.exe의 위치를 지정합니다.Specifies the location of MSBuild.exe, which is required to compile the temporary target assembly.
ReferencePath 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

임시 대상 어셈블리로 컴파일되는 형식에 의해 참조되는 어셈블리 목록을 경로 및 파일 이름별로 지정합니다.Specifies a list of assemblies, by path and file name, that are referenced by the types that are compiled into the temporary target assembly.
ReferencePathTypeName 필수 String 매개 변수입니다.Required String parameter.

어셈블리 참조의 목록(ReferencePath)을 지정하는 컴파일 대상(CompileTargetName) 매개 변수에 사용되는 매개 변수를 지정합니다.Specifies the parameter that is used by the compilation target (CompileTargetName) parameter that specifies the list of assembly references (ReferencePath). 적절한 값은 ReferencePath입니다.The appropriate value is ReferencePath.

설명Remarks

MarkupCompilePass1에 의해 실행되는 첫 번째 마크업 컴파일 패스는 XAMLXAML 파일을 이진 형식으로 컴파일합니다.The first markup compilation pass, which is run by the MarkupCompilePass1, compiles XAMLXAML files to binary format. 결과적으로 컴파일러에는 XAMLXAML 파일에서 사용되는 혀식을 포함하는 참조된 어셈블리 목록이 필요합니다.Consequently, the compiler needs a list of the referenced assemblies that contain the types that are used by the XAMLXAML files. 그러나 XAMLXAML 파일이 동일한 프로젝트에 정의된 형식을 사용하는 경우 프로젝트가 빌드될 때까지 해당 프로젝트의 해당 어셈블리는 만들어지지 않습니다.However, if a XAMLXAML file uses a type that is defined in the same project, a corresponding assembly for that project is not created until the project is built. 따라서 첫 번째 마크업 컴파일 패스 동안 어셈블리 참조가 제공될 수 없습니다.Therefore, an assembly reference cannot be provided during the first markup compilation pass.

대신, MarkupCompilePass1는 동일한 프로젝트의 형식에 대한 참조를 포함하는 XAMLXAML 파일의 변환을 MarkupCompilePass2에 의해 실행되는 두 번째 마크업 컴파일 패스로 연기합니다.Instead, MarkupCompilePass1 defers the conversion of XAMLXAML files that contain references to types in the same project to a second markup compilation pass, which is executed by the MarkupCompilePass2. MarkupCompilePass2가 실행되기 전에 임시 어셈블리가 생성됩니다.Before MarkupCompilePass2 is executed, a temporary assembly is generated. 이 어셈블리에는 해당 마크업 컴파일 패스가 지연되는 XAMLXAML 파일에서 사용되는 형식이 포함됩니다.This assembly contains the types that are used by the XAMLXAML files whose markup compilation pass was deferred. 지연된 컴파일 XAMLXAML 파일이 이진 형식으로 변환될 수 있도록 하기 위해 생성된 어셈블리에 대한 참조가 MarkupCompilePass2 실행 시에 제공됩니다.A reference to the generated assembly is provided to MarkupCompilePass2 when it runs to allow the deferred compilation XAMLXAML files to be converted to binary format.

Example

다음 예제에서는 Page1.xaml에 동일한 프로젝트에 있는 형식에 대한 참조가 포함되므로 임시 어셈블리를 생성합니다.The following example generates a temporary assembly because Page1.xaml contains a reference to a type that is in the same project.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
  <UsingTask  
    TaskName="Microsoft.Build.Tasks.Windows.GenerateTemporaryTargetAssembly"   
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />  
  <Target Name="GenerateTemporaryTargetAssemblyTask">  
    <GenerateTemporaryTargetAssembly  
      AssemblyName="WPFMSBuildSample"  
      CompileTargetName="CoreCompile"  
      CompileTypeName="Compile"  
      CurrentProject="FullBuild.proj"  
      GeneratedCodeFiles="obj\debug\app.g.cs;obj\debug\Page1.g.cs;obj\debug\Page2.g.cs"  
      ReferencePath="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"  
      IntermediateOutputPath=".\obj\debug\"  
      MSBuildBinPath="$(MSBuildBinPath)"  
      ReferencePathTypeName="ReferencePath"/>  
  </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