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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk