Elemen target (MSBuild)

Berisi sekumpulan tugas untuk MSBuild guna dijalankan secara berurutan.

<Project><Target>

Sintaks

<Target Name="Target Name"
        Inputs="Inputs"
        Outputs="Outputs"
        Returns="Returns"
        KeepDuplicateOutputs="true/false"
        BeforeTargets="Targets"
        AfterTargets="Targets"
        DependsOnTargets="DependentTarget"
        Condition="'String A' == 'String B'"
        Label="Label">
    <Task>... </Task>
    <PropertyGroup>... </PropertyGroup>
    <ItemGroup>... </ItemGroup>
    <OnError... />
</Target>

Atribut dan elemen

Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.

Atribut

Atribut Deskripsi
Name Atribut yang diperlukan.

Nama target. Nama target mungkin berisi karakter apa pun kecuali $@()%*?..
Condition Atribut opsional.

Kondisi yang akan dievaluasi. Jika kondisi dievaluasi ke false, target tidak akan menjalankan isi target atau target apa pun yang diatur dalam DependsOnTargets atribut. Untuk informasi selengkapnya tentang kondisi, lihat Kondisi.
Inputs Atribut opsional.

File yang membentuk input ke dalam target ini. Beberapa file dipisahkan oleh titik koma. Stempel waktu file akan dibandingkan dengan stempel waktu file untuk Outputs menentukan apakah Target sudah diperbarui. Untuk informasi selengkapnya, lihat Build inkremental, Cara: Mem-build secara bertahap, dan Transformasi.
Outputs Atribut opsional.

File yang membentuk output ke dalam target ini. Beberapa file dipisahkan oleh titik koma. Stempel waktu file akan dibandingkan dengan stempel waktu file untuk Inputs menentukan apakah Target sudah diperbarui. Untuk informasi selengkapnya, lihat Build inkremental, Cara: Mem-build secara bertahap, dan Transformasi.
Returns Atribut opsional.

Kumpulan item yang akan tersedia untuk tugas yang memanggil target ini, misalnya, tugas MSBuild. Beberapa target dipisahkan oleh titik koma. Jika target dalam file tidak Returns memiliki atribut, atribut Output digunakan sebagai gantinya untuk tujuan ini.
KeepDuplicateOutputs Atribut Boolean opsional.

Jika true, beberapa referensi ke item yang sama dalam Pengembalian target direkam. Secara default, atribut ini adalah false.
BeforeTargets Atribut opsional.

Daftar nama target yang dipisahkan titik koma. Ketika ditentukan, menunjukkan bahwa target ini harus berjalan sebelum satu atau beberapa target yang ditentukan. Ini memungkinkan penulis proyek memperluas serangkaian target yang ada tanpa memodifikasinya secara langsung. Untuk informasi selengkapnya, lihat Urutan build target.
AfterTargets Atribut opsional.

Daftar nama target yang dipisahkan titik koma. Ketika ditentukan, menunjukkan bahwa target ini harus berjalan sebelum satu atau beberapa target yang ditentukan. Ini memungkinkan penulis proyek memperluas serangkaian target yang ada tanpa memodifikasinya secara langsung. Untuk informasi selengkapnya, lihat Urutan build target.
DependsOnTargets Atribut opsional.

Target yang harus dijalankan sebelum target ini dapat dijalankan atau analisis dependensi tingkat atas dapat terjadi. Beberapa target dipisahkan oleh titik koma.
Label Atribut opsional.

Pengidentifikasi yang dapat mengidentifikasi atau mengurutkan sistem dan elemen pengguna.

Elemen anak

Elemen Deskripsi
Tugas Membuat dan menjalankan instans dari tugas MSBuild. Mungkin ada nol atau lebih tugas dalam target.
PropertyGroup Berisi serangkaian elemen Property yang ditentukan pengguna. Mulai di .NET Framework 3.5, suatu Target elemen mungkin berisi PropertyGroup beberapa elemen.
ItemGroup Berisi serangkaian elemen Item yang ditentukan pengguna. Mulai di .NET Framework 3.5, suatu Target elemen mungkin berisi ItemGroup beberapa elemen. Untuk informasi selengkapnya, lihat Item.
OnError Menyebabkan satu atau beberapa target dijalankan jika ContinueOnError atributnya adalah ErrorAndStop (atau false) untuk tugas yang gagal. Mungkin ada nol atau beberapa OnError elemen dalam target. Jika OnError ada elemen, elemen tersebut harus menjadi elemen terakhir dalam Target elemen.

Untuk informasi tentang ContinueOnError atribut, lihat Elemen tugas (MSBuild).

Elemen induk

Elemen Deskripsi
Project Elemen akar yang diperlukan dari file proyek MSBuild.

Keterangan

Target pertama yang dijalankan ditentukan pada durasi. Target dapat memiliki dependensi pada target lain. Misalnya, target untuk penyebaran bergantung pada target untuk kompilasi. Mesin MSBuild menjalankan dependensi dalam urutan munculnya dependensi tersebut di DependsOnTargets atribut, dari kiri ke kanan. Untuk informasi selengkapnya, lihat Target.

MSBuild bergantung pada urutan impor, dan definisi terakhir dari target dengan atribut spesifik Name adalah definisi yang digunakan.

Target hanya dijalankan sekali selama build, meski lebih dari satu target memiliki dependensi padanya.

Jika target dilewati karena atributnya Condition dievaluasi ke false, target masih dapat dijalankan jika dipanggil nanti dalam build dan atributnya Condition dievaluasi pada true saat itu.

Sebelum MSBuild 4, Target mengembalikan item apa pun yang ditentukan dalam Outputs atribut . Untuk melakukan ini, MSBuild harus merekam item ini jika nantinya tugas dalam build memintanya. Karena tidak ada cara untuk menunjukkan target mana yang memiliki output yang diperlukan pemanggil, MSBuild mengumpulkan semua item dari semua Outputs yang dipanggil Target. Hal ini menyebabkan masalah penskalaan untuk build yang memiliki sejumlah besar item output.

Jika pengguna menentukan Returns pada elemen apa pun Target dalam proyek, maka hanya yang Targetmemiliki Returns atribut yang merekam item tersebut.

Target mungkin berisi Outputs atribut dan Returns atribut. Outputs digunakan dengan Inputs untuk menentukan apakah target sudah diperbarui. Returns, jika ada, mengambil alih nilai Outputs untuk menentukan item mana yang ditampilkan ke pemanggil. Jika Returns tidak ada, maka Outputs akan tersedia untuk pemanggil kecuali dalam kasus yang dijelaskan sebelumnya.

Sebelum MSBuild 4, setiap kali Target menyertakan beberapa referensi ke item yang sama dalam Outputs, item duplikat tersebut akan direkam. Dalam build yang sangat besar yang memiliki sejumlah besar output dan banyak interdependensi proyek, ini akan menyebabkan sejumlah besar memori terbuang sia-sia karena item duplikat tidak digunakan. KeepDuplicateOutputs Ketika atribut diatur ke true, duplikat ini direkam.

Contoh

Contoh kode berikut menunjukkan Target elemen yang menjalankan Csc tugas.

<Target Name="Compile" DependsOnTargets="Resources" Returns="$(TargetPath)">
    <Csc Sources="@(CSFile)"
          TargetType="library"
          Resources="@(CompiledResources)"
          EmitDebugInformation="$(includeDebugInformation)"
          References="@(Reference)"
          DebugType="$(debuggingType)" >
        <Output TaskParameter="OutputAssembly"
                  ItemName="FinalAssemblyName" />
    </Csc>
</Target>

Baca juga