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 pertamaUsingTask yang berlaku untuk TaskName akan digunakan; untuk mengambil alih tugas, Anda harus menentukan yang baruUsingTask 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 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>

Baca juga