Bagikan melalui


GenerateTemporaryTargetAssembly task

Tugas GenerateTemporaryTargetAssembly menghasilkan rakitan jika setidaknya satu halaman XAML dalam proyek mereferensikan jenis yang dideklarasikan secara lokal dalam proyek tersebut. Rakitan yang dihasilkan dihapus setelah proses build selesai, atau jika proses build gagal.

Parameter tugas

Parameter Deskripsi
AssemblyName Parameter String yang diperlukan.

Menentukan nama pendek rakitan yang dihasilkan untuk proyek dan juga merupakan nama rakitan target yang dihasilkan untuk sementara. Misalnya, jika proyek menghasilkan Windows yang dapat dieksekusi yang namanya WinExeAssembly.exe, parameter AssemblyName memiliki nilai WinExeAssembly.
CompileTargetName Parameter String yang diperlukan.

Menentukan nama target MSBuild yang digunakan untuk menghasilkan rakitan dari file kode sumber. Nilai umum untuk CompileTargetName adalah CoreCompile.
CompileTypeName Parameter String yang diperlukan.

Menentukan jenis kompilasi yang dilakukan oleh target yang ditentukan oleh parameter CompileTargetName. Untuk target CoreCompile, nilai ini adalah Kompilasi.
CurrentProject Parameter String yang diperlukan.

Menentukan jalur lengkap file proyek MSBuild untuk proyek yang memerlukan rakitan target sementara.
GeneratedCodeFiles Parameter ITaskItem[] opsional.

Menentukan daftar file kode terkelola khusus bahasa yang dihasilkan oleh tugas MarkupCompilePass1.
IntermediateOutputPath Parameter String yang diperlukan.

Menentukan direktori tempat rakitan target sementara dibuat.
MSBuildBinPath Parameter String yang diperlukan.

Menentukan lokasi MSBuild.exe, yang diperlukan untuk mengompilasi rakitan target sementara.
ReferencePath Parameter ITaskItem[] opsional.

Menentukan daftar rakitan, menurut jalur dan nama file, yang dirujuk oleh jenis yang dikompilasi ke dalam rakitan target sementara.
ReferencePathTypeName Parameter String yang diperlukan.

Menentukan parameter yang digunakan oleh parameter target kompilasi (CompileTargetName) yang menentukan daftar referensi perakitan (ReferencePath). Nilai yang sesuai adalah ReferencePath.

Keterangan

Lintasan kompilasi markup pertama, yang dijalankan oleh MarkupCompilePass1, mengompilasi file XAML ke format biner. Akibatnya, pengompilasi memerlukan daftar rakitan yang direferensikan yang berisi jenis yang digunakan oleh file XAML. Namun, jika file XAML menggunakan jenis yang ditentukan dalam proyek yang sama, rakitan yang sesuai untuk proyek tersebut tidak dibuat sampai proyek dibuat. Oleh karena itu, referensi rakitan tidak dapat disediakan selama lintasan kompilasi markup pertama.

Sebagai gantinya, MarkupCompilePass1 menangguhkan konversi file XAML yang berisi referensi ke jenis dalam proyek yang sama ke lintasan kompilasi markup kedua, yang dijalankan oleh MarkupCompilePass2. Sebelum MarkupCompilePass2 dijalankan, rakitan sementara dibuat. Rakitan ini berisi jenis yang digunakan oleh file XAML yang terusan kompilasi markupnya ditangguhkan. Referensi ke rakitan yang dihasilkan disediakan untuk MarkupCompilePass2 saat dijalankan untuk memungkinkan file XAML kompilasi yang ditangguhkan dikonversi ke format biner.

Contoh

Contoh berikut menghasilkan rakitan sementara karena Page1.xaml berisi referensi ke jenis yang berada dalam proyek yang sama.

<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>

Baca juga