GenerateTemporaryTargetAssembly タスクGenerateTemporaryTargetAssembly Task

GenerateTemporaryTargetAssembly タスクは、プロジェクト内の少なくとも 1 つの Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) ページが、そのプロジェクトでローカルに宣言されている型を参照している場合に、アセンブリを生成します。The GenerateTemporaryTargetAssembly task generates an assembly if at least one Extensible Application Markup Language (XAML)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.exe という名前の WindowsWindows 実行可能ファイルを生成する場合、AssemblyName パラメーターの値は WinExeAssembly になります。For example, if a project generates a WindowsWindows executable whose name is WinExeAssembly.exe, the AssemblyName parameter has a value of WinExeAssembly.
CompileTargetName 必須の String 型のパラメーターです。Required String parameter.

ソース コード ファイルからアセンブリを生成するために使用される Microsoft Build Engine (MSBuild)Microsoft build engine (MSBuild) ターゲットの名前を指定します。Specifies the name of the Microsoft Build Engine (MSBuild)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.

コンパイル ターゲット (CompileTargetName) パラメーターによって使用される、アセンブリ参照の一覧 (ReferencePath) を指定するパラメーターを指定します。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 によって実行される 2 番目のマークアップ コンパイル パスまで延期します。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. MarkupCompilePass2 の実行時には、生成されたアセンブリへの参照を指定します。これにより、コンパイルが延期された XAMLXAML ファイルをバイナリ形式にコンパイルできるようになります。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 (タスク リファレンス) Task Reference
MSBuild リファレンス MSBuild Reference
Task Reference (タスク リファレンス) Task Reference
WPF アプリケーション (WPF) のビルド Building a WPF Application (WPF)
WPF XAML ブラウザー アプリケーションの概要WPF XAML Browser Applications Overview