Bahasa

Item proyek MSBuild umum

Di MSBuild, item adalah referensi bernama ke satu atau beberapa string, seperti nama file. Item berisi metadata seperti nama file, jalur, dan nomor versi. Semua jenis proyek di Visual Studio memiliki beberapa item yang sama. Item ini didefinisikan dalam file Microsoft.Build.CommonTypes.xsd.

Artikel ini mencantumkan semua item proyek umum yang ditentukan dalam MSBuild itu sendiri. Item dan properti yang disediakan oleh .NET SDK didokumenkan di referensi MSBuild untuk Microsoft.Net.Sdk.

MSBuild sendiri tidak menetapkan nilai apa pun untuk metadata opsional, dan metadata yang tidak diatur setara dengan string kosong. Oleh karena itu, nilai default untuk metadata opsional adalah string kosong. Namun, nilai metadata terkadang diatur dalam file SDK yang diimpor secara implisit. Nilai bergantung pada SDK yang dirujuk.

Reference

Mewakili referensi rakitan .NET (terkelola) dalam proyek.

Nama metadata item Description
HintPath String opsional. Jalur perakitan relatif atau absolut.
Name String opsional. Nama tampilan rakitan, misalnya, "System.Windows.Forms."
FusionName String opsional. Menentukan nama fusi sederhana atau kuat untuk item.

Ketika atribut ini ada, atribut ini dapat menghemat waktu karena file assembly tidak perlu dibuka untuk mendapatkan nama fusi.
SpecificVersion Boolean opsional. Menentukan apakah hanya versi dalam nama fusi yang harus direferensikan.
Aliases String opsional. Alias apa pun untuk referensi. Gunakan dengan alias ekstern di C# untuk menangani konflik penamaan.
Private Boolean opsional. Menentukan apakah referensi harus disalin ke folder output. Atribut ini cocok dengan properti Salin Lokal dari referensi yang ada di Visual Studio IDE. Default ke false.

Note

Jenis Reference item juga dapat digunakan untuk mereferensikan rakitan pembungkus yang dibuat sebelumnya untuk objek COM asli, misalnya, jika Anda digunakan tlbimp.exe untuk menghasilkan PIA (Primary Interop Assembly). Jenis referensi ini adalah pilihan yang tepat ketika Anda ingin membuat rakitan pembungkus COM sendiri dengan input yang diketahui, alih-alih mengandalkan algoritma MSBuild untuk menghasilkan pembungkus COM pada waktu build, yang memperkenalkan dependensi pada status registri sistem pada mesin build tempat MSBuild dijalankan.

COMReference

Mewakili referensi komponen COM (tidak terkelola) dalam proyek. Item ini digunakan oleh tugas ResolveComReference, yang menghasilkan rakitan pembungkus, atau, jika EmbedInteropTypes digunakan, menyematkan jenis interop di rakitan Anda. Menggunakan jenis referensi ini memperkenalkan dependensi pada registri sistem pada komputer build, yang digunakan untuk mencari objek COM yang direferensikan. Artefak COM dan entri COM dalam registri dapat berubah ketika produk diinstal, diperbarui, atau dihapus instalannya pada komputer (atau ketika Anda menjalankan build yang sama pada komputer yang berbeda), berpotensi menghasilkan rakitan pembungkus yang berbeda bahkan jika logika build tidak berubah.

Item ini tidak berlaku untuk proyek non-.NET.

Nama metadata item Description
Name String opsional. Nama tampilan komponen.
Guid String yang diperlukan. GUID untuk komponen, dalam formulir {12345678-1234-1234-1234-123456781234}.
VersionMajor String yang diperlukan. Bagian utama dari nomor versi komponen. Misalnya, "5" jika nomor versi lengkap adalah "5.46."
VersionMinor String yang diperlukan. Bagian minor dari nomor versi komponen. Misalnya, "46" jika nomor versi lengkap adalah "5.46."
EmbedInteropTypes Boolean opsional. Jika true, sematkan jenis interop dari referensi ini langsung ke assembly Anda daripada menghasilkan DLL interop.
Lcid String opsional. LocaleID untuk komponen.
WrapperTool String opsional. Nama alat pembungkus yang digunakan pada komponen. Nilainya adalah:

1. primer
2. tlbimp
3. primaryortlbimp
4. aximp
Isolated Boolean opsional. Menentukan apakah komponen adalah komponen bebas reg. Default ke false.

Lihat Memecahkan masalah referensi COM.

COMFileReference

Mewakili daftar pustaka jenis untuk direferensikan menurut jalur file, alih-alih menggunakan registri sistem. Jenis referensi ini dapat menjadi alternatif yang baik untuk COMReference dalam kasus di mana Anda ingin menghindari dependensi pada registri komputer build, baik karena akun yang menjalankan build tidak memiliki hak istimewa yang ditinggikan untuk mengedit registri di server build, atau Anda tidak ingin build memiliki dependensi pada status registri. Jika Anda menggunakan COMFileReference untuk mereferensikan artefak pada jalur sistem, build Anda memiliki dependensi pada status sistem. Jika artefak sistem berubah karena perubahan status sistem, seperti ketika produk diinstal, diperbarui, atau dihapus (atau jika Anda menjalankan build yang sama pada komputer yang berbeda), maka rakitan pembungkus dapat berubah, bahkan jika logika build tidak berubah. Untuk memastikan hasil build yang konsisten, Anda dapat menyimpan salinan artefak COM yang diketahui di tempat yang Anda kontrol, seperti di bawah folder proyek atau solusi Anda, dan mereferensikan itu alih-alih artefak sistem.

Item ini tidak berlaku untuk proyek non-.NET.

Nama metadata item Description
EmbedInteropTypes Boolean opsional. Jika true, sematkan jenis interop dari referensi ini langsung ke assembly Anda daripada menghasilkan DLL interop. Secara default adalah false.
WrapperTool String opsional. Nama alat pembungkus yang digunakan pada komponen. Nilainya adalah:

1. primer
2. tlbimp
3. primaryortlbimp
4. aximp

Lihat Memecahkan masalah referensi COM.

NativeReference

Mewakili file manifes asli atau referensi ke file tersebut.

Nama metadata item Description
Name String yang diperlukan. Nama dasar file manifes.
HintPath String yang diperlukan. Jalur relatif file manifes.

ProjectReference

Mewakili referensi ke proyek lain. ProjectReference item diubah menjadi Item referensi oleh ResolveProjectReferences target, sehingga metadata yang valid pada Referensi mungkin valid pada ProjectReference, jika proses transformasi tidak menimpanya. Misalnya, Anda dapat menerapkan Aliases untuk menangani konflik penamaan.

Nama metadata item Description
Name String opsional. Nama tampilan referensi.
GlobalPropertiesToRemove string[]opsional . Nama properti yang akan dihapus saat membuat proyek yang dirujuk, misalnya RuntimeIdentifier;PackOnBuild. Default untuk kosong.
Project String opsional. GUID untuk referensi, dalam formulir {12345678-1234-1234-1234-123456781234}.
OutputItemType String opsional. Jenis item untuk memancarkan output target ke dalamnya. Defaultnya kosong. Jika metadata Referensi diatur ke "true" (default), maka output target menjadi referensi untuk pengkompilasi.
ReferenceOutputAssembly Boolean opsional. Jika diatur ke false, tidak menyertakan output proyek yang dirujuk sebagai referensi proyek ini, tetapi masih memastikan bahwa proyek lain dibangun sebelum proyek ini. Default ke true.
BuildReference Boolean opsional. Default ke true. Jika diatur ke false, ProjectReference ini tidak akan dibangun oleh MSBuild. Target defaultnya (lihat 'Target' di bawah) tidak akan dipanggil sama sekali.
Private Boolean opsional. Menentukan apakah referensi harus disalin ke folder output. Atribut ini cocok dengan properti Salin Lokal dari referensi yang ada di Visual Studio IDE.
SetConfiguration String opsional. Mengatur properti global Configuration untuk proyek yang dirujuk, misalnya Configuration=Release.
SetPlatform String opsional. Mengatur properti global Platform untuk proyek yang dirujuk, misalnya Platform=AnyCPU.
SetTargetFramework String opsional. Mengatur properti global TargetFramework untuk proyek yang dirujuk, misalnya TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Boolean opsional. Jika true, membangun proyek yang dirujuk tanpa menegosiasikan nilai TargetFramework yang paling kompatibel. Default ke false.
Targets string[]opsional . Daftar target yang dipisahkan titik koma dalam proyek yang dirujuk yang harus dibangun. Defaultnya adalah nilai $(ProjectReferenceBuildTargets), yang defaultnya kosong, menunjukkan target default. Saat membangun di Visual Studio (dibandingkan dengan MSBuild.exe atau dotnet build), menentukan hal ini tidak mencegah Visual Studio membangun target default proyek yang direferensikan.

Note

Ada perbedaan antara cara kerja referensi proyek antara .NET Framework dan .NET Core (termasuk .NET 5 dan yang lebih baru). Dalam proyek .NET Framework, referensi proyek tidak transitif. Artinya, jika Project1 mereferensikan Project2, dan Project2 mereferensikan Project3, Anda tidak dapat membuat kode terhadap Project3 dari Project1. Namun, di .NET Core (termasuk .NET 5 dan yang lebih baru), referensi proyek transitif. Anda dapat membuat kode terhadap Project3 di Project1.

Compile

Mewakili file sumber untuk pengkompilasi.

Nama metadata item Description
DependentUpon String opsional. Menentukan file yang bergantung pada file ini untuk dikompilasi dengan benar.
AutoGen Boolean opsional. Menunjukkan apakah file dibuat untuk proyek oleh lingkungan pengembangan terintegrasi (IDE) Visual Studio. Default ke false.
Link String opsional. Jalur notasi yang akan ditampilkan ketika file secara fisik terletak di luar pengaruh file proyek.
Visible Boolean opsional. Menunjukkan apakah akan menampilkan file di Penjelajah Solusi di Visual Studio. Default ke true.
CopyToOutputDirectory String opsional. Menentukan apakah akan menyalin file ke direktori output. Nilainya adalah:

1. Tidak pernah
2. Selalu
3. PertahankanBaru
4. IfDifferent

Default ke Never jika DefineExplicitDefaults diatur ke true; jika tidak, default ke string kosong.

EmbeddedResource

Mewakili sumber daya yang akan disematkan dalam rakitan yang dihasilkan.

Nama metadata item Description
Culture String opsional. Menentukan budaya file sumber daya. Jika ditentukan, proses build tidak menyimpulkan budaya secara otomatis berdasarkan ekstensi file (yang tergantung pada budaya yang tersedia untuk .NET/OS pada komputer yang menghosting build). Mengatur metadata Culture={culture identifier} atau WithCulture=false sangat disarankan.
WithCulture Bool opsional. Menentukan bahwa file adalah deteksi netral budaya dan budaya dengan tugas AssignCulture harus dilewati. Mengatur metadata Culture={culture identifier} atau WithCulture=false sangat disarankan.
DependentUpon String opsional. Menentukan file yang bergantung pada file ini untuk dikompilasi dengan benar
Generator String opsional. Nama generator file apa pun yang dijalankan pada item ini.
LastGenOutput String opsional. Nama file yang dibuat oleh generator file apa pun yang berjalan pada item ini.
CustomToolNamespace String opsional. Namespace di mana generator file apa pun yang berjalan pada item ini harus membuat kode.
Link String opsional. Jalur notasi ditampilkan jika file secara fisik terletak di luar pengaruh proyek.
Visible Boolean opsional. Menunjukkan apakah akan menampilkan file di Penjelajah Solusi di Visual Studio.
CopyToOutputDirectory String opsional. Menentukan apakah akan menyalin file ke direktori output. Nilainya adalah:

1. Tidak pernah
2. Selalu
3. PertahankanBaru
4. IfDifferent

Default ke Never jika DefineExplicitDefaults diatur ke true; jika tidak, default ke string kosong.
LogicalName String yang diperlukan. Nama logis sumber daya yang disematkan.

Content

Mewakili file yang tidak dikompilasi ke dalam proyek, tetapi dapat disematkan atau diterbitkan bersama dengannya.

Nama metadata item Description
DependentUpon String opsional. Menentukan file yang bergantung pada file ini untuk dikompilasi dengan benar.
Generator String opsional. Nama generator file apa pun yang berjalan pada item ini.
LastGenOutput String opsional. Nama file yang dibuat oleh generator file apa pun yang dijalankan pada item ini.
CustomToolNamespace String opsional. Namespace di mana generator file apa pun yang berjalan pada item ini harus membuat kode.
Link String opsional. Jalur notasi yang akan ditampilkan jika file secara fisik terletak di luar pengaruh proyek.
PublishState String yang diperlukan. Status penerbitan konten, baik:

-Default
-Termasuk
-Dikecualikan
- DataFile
-Prasyarat
IsAssembly Boolean opsional. Menentukan apakah file adalah rakitan.
Visible Boolean opsional. Menunjukkan apakah akan menampilkan file di Penjelajah Solusi di Visual Studio.
CopyToOutputDirectory String opsional. Menentukan apakah akan menyalin file ke direktori output. Nilainya adalah:

1. Tidak pernah
2. Selalu
3. PertahankanBaru
4. IfDifferent

Default ke Never jika DefineExplicitDefaults diatur ke true; jika tidak, default ke string kosong.
TargetPath String opsional. Jalur output (relatif terhadap direktori output khusus konfigurasi dan/atau platform) dari item, termasuk nama file. Ini menghormati metadata Link, jika disediakan. Jika TargetPath tidak disediakan, target akan dihitung selama proses build. Lihat AssignTargetPath.

None

Mewakili file yang seharusnya tidak memiliki peran dalam proses build.

Nama metadata item Description
DependentUpon String opsional. Menentukan file yang bergantung pada file ini untuk dikompilasi dengan benar.
Generator String opsional. Nama generator file apa pun yang dijalankan pada item ini.
LastGenOutput String opsional. Nama file yang dibuat oleh generator file apa pun yang berjalan pada item ini.
CustomToolNamespace String opsional. Namespace di mana generator file apa pun yang berjalan pada item ini harus membuat kode.
Link String opsional. Jalur notasi yang akan ditampilkan jika file secara fisik terletak di luar pengaruh proyek.
Visible Boolean opsional. Menunjukkan apakah akan menampilkan file di Penjelajah Solusi di Visual Studio.
CopyToOutputDirectory String opsional. Menentukan apakah akan menyalin file ke direktori output. Nilainya adalah:

1. Tidak pernah
2. Selalu
3. PertahankanBaru
4. IfDifferent

Default ke Never jika DefineExplicitDefaults diatur ke true; jika tidak, default ke string kosong.

AssemblyMetadata

Mewakili atribut rakitan yang akan dihasilkan sebagai [AssemblyMetadata(key, value)].

Nama metadata item Description
Include Menjadi parameter pertama (kunci) di konstruktor atribut AssemblyMetadataAttribute.
Value String yang diperlukan. Menjadi parameter kedua (nilai) dalam konstruktor atribut AssemblyMetadataAttribute.

Note

Item ini berlaku untuk proyek yang menggunakan SDK untuk .NET 5 (dan .NET Core) dan versi yang lebih baru.

InternalsVisibleTo

Menentukan rakitan yang akan dipancarkan sebagai atribut assembly [InternalsVisibleTo(..)].

Nama metadata item Description
Include Nama assembly.
Key String opsional. Kunci umum assembly.

Note

Item ini berlaku untuk proyek yang menggunakan SDK untuk .NET 5 (dan .NET Core) dan versi yang lebih baru.

BaseApplicationManifest

Mewakili manifes aplikasi dasar untuk build, dan berisi informasi keamanan penyebaran ClickOnce.

CodeAnalysisImport

Mewakili proyek FxCop untuk diimpor.

Import

Mewakili rakitan yang namespacenya harus diimpor oleh pengkompilasi Visual Basic.

Folder

Elemen ini hanya digunakan oleh Visual Studio sebagai tempat penampung untuk folder kosong. Ketika folder diisi, folder digantikan oleh elemen lain.

Lihat juga