Elemen UsingTask (MSBuild)
Petakan tugas yang dirujuk dalam elemen Tugas ke assembly yang berisi implementasi tugas.
<Project><UsingTask>
Sintaksis
<UsingTask TaskName="TaskName"
AssemblyName = "AssemblyName"
TaskFactory = "ClassName"
Condition="'String A'=='String B'" />
Catatan
Tidak seperti properti dan item, elemen pertama UsingTask
yang berlaku untuk TaskName
akan digunakan; untuk mengambil alih tugas, Anda harus menentukan yang baru UsingTask
sebelum yang sudah ada, atau menentukan Override="true"
di yang baruUsingTask
.
Atribut dan elemen
Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.
Atribut
Atribut | Deskripsi |
---|---|
Architecture |
Atribut opsional. Menentukan bahwa tugas harus berjalan dalam proses bitness yang ditentukan. Jika proses saat ini tidak memenuhi persyaratan, tugas akan dijalankan dalam proses host tugas yang melakukannya. Nilai yang didukung adalah x86 (32-bit), x64 (64-bit), CurrentArchitecture , dan * (arsitektur apa pun). |
AssemblyName |
AssemblyName Atribut atau AssemblyFile atribut diperlukan.Nama perakitan yang akan dimuat. Atribut AssemblyName menerima rakitan bernama kuat, meskipun penamaan yang kuat tidak diperlukan. Menggunakan atribut ini setara dengan memuat perakitan dengan menggunakan Load metode di .NET.Anda tidak dapat menggunakan atribut ini jika AssemblyFile atribut digunakan. |
AssemblyFile |
AssemblyName Atribut atau AssemblyFile atribut diperlukan.Jalur file assembly. Atribut ini menerima jalur lengkap atau jalur relatif. Jalur relatif relatif terhadap direktori file proyek atau file target tempat UsingTask elemen dideklarasikan. Menggunakan atribut ini setara dengan memuat perakitan dengan menggunakan LoadFrom metode di .NET.Anda tidak dapat menggunakan atribut ini jika AssemblyName atribut digunakan. |
Override |
Atribut opsional. Menentukan bahwa elemen ini UsingTask harus menjadi prioritas yang lebih tinggi daripada elemen lain yang menentukan nama tugas yang sama. Hanya satu penimpaan yang diizinkan per nama tugas. Ditambahkan dalam MSBuild 17.2. |
Runtime |
Atribut opsional. Menentukan bahwa tugas harus berjalan dalam runtime .NET Framework dari versi yang ditentukan. Jika proses saat ini tidak memenuhi persyaratan, tugas akan dijalankan dalam proses host tugas yang melakukannya. Nilai yang didukung adalah 'NET' (.NET Core dan .NET 5 atau lebih tinggi), CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 atau lebih tinggi), CurrentRuntime , dan * (runtime apa pun). Perhatikan bahwa Anda tidak dapat memanggil tugas NET saat menjalankan MSBuild .NET Framework (CLR4), dan Anda tidak dapat memanggil tugas CLR2/CLR4 dari .NET MSBuild (saat menjalankan dotnet build ). |
TaskFactory |
Atribut opsional. Menentukan kelas dalam rakitan yang bertanggung jawab untuk menghasilkan instans dari nama yang ditentukan Task . Pengguna juga dapat menentukan Task sebagai elemen turunan yang diterima dan digunakan pabrik tugas untuk menghasilkan tugas. Isinya Task khusus untuk pabrik tugas. Defaultnya TaskFactory adalah AssemblyTaskFactory , yang memuat tugas ke dalam proses yang sedang berjalan. |
TaskName |
Atribut yang diperlukan. Nama tugas yang akan dirujuk dari assembly. Jika ambiguitas dimungkinkan, atribut ini harus selalu menentukan namespace layanan lengkap. Jika ada ambiguitas, MSBuild memilih kecocokan arbitrer, yang dapat menghasilkan hasil yang tidak terduga. |
Condition |
Atribut opsional. Kondisi yang akan dievaluasi. Untuk informasi selengkapnya, lihat Syarat-syarat. |
Elemen anak
Elemen | Deskripsi |
---|---|
ParameterGroup | Kumpulan parameter yang muncul pada tugas yang dihasilkan oleh yang ditentukan TaskFactory . |
Tugas | Data yang diteruskan ke TaskFactory untuk menghasilkan instans tugas. |
Elemen induk
Elemen | Deskripsi |
---|---|
Proyek | Elemen akar yang diperlukan dari file proyek MSBuild. |
Keterangan
Variabel lingkungan, properti baris perintah, properti tingkat proyek, dan item tingkat proyek dapat direferensikan dalam UsingTask
elemen yang disertakan dalam file proyek baik secara langsung atau melalui file proyek yang diimpor. Untuk informasi selengkapnya, lihat Tugas.
Catatan
properti dan item tingkat Project tidak memiliki arti jika UsingTask
elemen berasal dari salah satu file .tasks yang terdaftar secara global dengan mesin MSBuild. nilai tingkat Project tidak global untuk MSBuild.
Di MSBuild 4.0, menggunakan tugas dapat dimuat dari file .overridetask.
Rakitan yang berisi tugas kustom dimuat saat Task
pertama kali digunakan.
Contoh 1
Contoh berikut menunjukkan cara menggunakan UsingTask
elemen dengan AssemblyFile
atribut.
<UsingTask TaskName="Email"
AssemblyFile="c:\myTasks\myTask.dll" />
Karena tidak Runtime
ada atau TaskHost
ditentukan, tugas akan dijalankan dalam proses MSBuild, dalam runtime dan arsitektur yang kebetulan berjalan untuk build tertentu.
Contoh 2
Contoh berikut menunjukkan cara menggunakan UsingTask
elemen dengan AssemblyName
atribut dan kustom TaskFactory
yang ditentukan dalam rakitan tersebut.
<UsingTask TaskName="MyTask" AssemblyName="My.Assembly" TaskFactory="MyTaskFactory">
<ParameterGroup>
<Parameter1 ParameterType="System.String" Required="False" Output="False"/>
<Parameter2 ParameterType="System.Int" Required="True" Output="False"/>
...
</ParameterGroup>
<Task>
... Task factory-specific data ...
</Task>
</UsingTask>