Bagikan melalui


Elemen target (MSBuild)

Berisi sekumpulan tugas untuk MSBuild untuk dijalankan secara berurutan.

<Target Proyek><>

Syntax

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

Attributes

Attribute Description
Name Atribut yang diperlukan.

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

Kondisi yang akan dievaluasi. Jika kondisi mengevaluasi 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. Tanda waktu file akan dibandingkan dengan tanda waktu file untuk Outputs menentukan apakah Target sudah diperbarui. Untuk informasi selengkapnya, lihat Build bertahap, Cara: Membangun secara bertahap, dan Transformasi.
Outputs Atribut opsional.

File yang membentuk output ke dalam target ini. Beberapa file dipisahkan oleh titik koma. Tanda waktu file akan dibandingkan dengan tanda waktu file untuk Inputs menentukan apakah Target sudah diperbarui. Untuk informasi selengkapnya, lihat Build bertahap, Cara: Membangun 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 target atau 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 setelah target atau 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 memesan sistem dan elemen pengguna.

Elemen turunan

Elemen Description
Tugas Membuat dan menjalankan instans tugas MSBuild. Mungkin ada nol atau lebih tugas dalam target.
PropertyGroup Berisi sekumpulan elemen yang ditentukan Property pengguna. Elemen Target mungkin berisi PropertyGroup elemen.
Grup Item Berisi sekumpulan elemen yang ditentukan Item pengguna. Elemen Target mungkin berisi ItemGroup 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 lebih 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 Description
Proyek Elemen akar yang diperlukan dari file proyek MSBuild.

Komentar

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

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

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

Jika target dilewati karena atributnya Condition mengevaluasi 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 dalam build memintanya. Karena tidak ada cara untuk menunjukkan target mana yang memiliki output yang diperlukan pemanggil, MSBuild mengumpulkan semua item dari semua Outputs pada semua yang dipanggil Target. 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 Targetelemen yang memiliki Returns atribut yang merekam item tersebut.

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

Sebelum MSBuild 4, setiap kali beberapa referensi yang Target disertakan ke item yang sama dalam Outputsitem 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 karena item duplikat tidak digunakan. KeepDuplicateOutputs Ketika atribut diatur ke true, duplikat ini direkam.

Example

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>

Lihat juga