Opsi Pengompilasi C# yang menentukan sumber daya

Opsi berikut mengontrol cara pengompilasi C# membuat atau mengimpor sumber daya Win32. Sintaksis MSBuild baru ditampilkan dalam Huruf tebal. Sintaks csc.exe yang lebih lama ditampilkan dalam huruf code style.

  • Win32Resource / -win32res: Menentukan file sumber daya Win32 (.res).
  • Win32Icon / -win32icon: Metadata acuan dari file atau file rakitan yang ditentukan.
  • Win32Manifest / -win32manifest: Menentukan file manifes Win32 (.xml).
  • NoWin32Manifest / -nowin32manifest: Jangan menyertakan manifes Win32 default.
  • Sumber daya / -resource: Menyematkan sumber daya yang ditentukan (Formulir pendek: /res).
  • LinkResources / -linkresources: Menautkan sumber daya yang ditentukan ke rakitan ini.

Win32Resource

Opsi Win32Resource menyisipkan sumber daya Win32 dalam file output.

<Win32Resource>filename</Win32Resource>

filename adalah file sumber daya yang ingin Anda tambahkan ke file output Anda. Sumber daya Win32 dapat berisi informasi versi atau bitmap (ikon) yang membantu mengidentifikasi aplikasi Anda pada File Explorer. Jika Anda tidak menentukan opsi ini, pengompilasi akan menghasilkan informasi versi berdasarkan versi rakitan.

Win32Icon

Opsi Win32Icon menyisipkan file .ico dalam file output, yang memberikan file output tampilan yang diinginkan dalam File Explorer.

<Win32Icon>filename</Win32Icon>

filename adalah file .ico yang ingin Anda tambahkan ke file output Anda. File .ico dapat dibuat dengan Pengompilasi Sumber Daya. Pengompilasi sumber daya diminta saat Anda mengompilasi program Visual C ++; sebuah file .ico dibuat dari file .rc.

Win32Manifest

Menggunakan opsi Win32Manifest untuk menentukan file manifes aplikasi Win32 yang ditetapkan pengguna untuk disematkan ke file portable executable (PE) proyek.

<Win32Manifest>filename</Win32Manifest>

filename adalah nama dan lokasi file manifes kustom. Secara default, pengompilasi C# menyematkan manifes aplikasi yang menentukan tingkat eksekusi "asInvoker" yang diminta. Hal ini membuat manifes di folder yang sama di mana executable dibuat. Jika Anda ingin menyediakan manifes kustom, misalnya untuk menentukan tingkat eksekusi yang diminta dari "highestAvailable" atau "requireAdministrator," gunakan opsi ini untuk menentukan nama file.

Catatan

Opsi ini dan opsi Win32Resources bersifat saling eksklusif. Jika Anda mencoba menggunakan kedua opsi di baris perintah yang sama, Anda akan mendapatkan kesalahan build.

Aplikasi yang tidak memiliki manifes aplikasi yang menentukan tingkat eksekusi yang diminta akan tunduk pada virtualisasi file dan registri di bawah fitur Kontrol Akun Pengguna pada Windows. Untuk informasi selengkapnya, lihat Kontrol Akun Pengguna.

Aplikasi Anda akan tunduk pada virtualisasi jika salah satu kondisi berikut benar:

  • Anda menggunakan opsi NoWin32Manifest dan Anda tidak menyediakan manifes pada langkah build selanjutnya atau sebagai bagian dari file Windows Resource (.res) dengan menggunakan opsi Win32Resource.
  • Anda menyediakan manifes kustom yang tidak menentukan tingkat eksekusi yang diminta.

Visual Studio membuat file .manifest default dan menyimpannya di direktori debug dan rilis bersama file executable. Anda dapat menambahkan manifes kustom dengan membuatnya di editor teks lalu menambahkan file ke proyek. Atau, Anda dapat mengeklik kanan ikon Proyek di Penjelajah Solusi, pilih Tambahkan Item Baru, lalu pilih File Manifes Aplikasi. Setelah Anda menambahkan file manifes baru atau yang sudah ada, file tersebut akan muncul di daftar drop-down Manifes. Untuk informasi selengkapnya, lihat Halaman Aplikasi, Project Designer (C#).

Anda dapat menyediakan manifes aplikasi sebagai langkah pasca-build kustom atau sebagai bagian dari file sumber daya Win32 dengan menggunakan opsi NoWin32Manifest. Gunakan opsi yang sama jika Anda ingin aplikasi Anda tunduk pada virtualisasi file atau registri di Windows Vista.

-NoWin32Manifest

Gunakan opsi NoWin32Manifest untuk menginstruksikan pengompilasi agar tidak menyematkan manifes aplikasi apa pun ke dalam file yang dapat dieksekusi.

<NoWin32Manifest />

Ketika opsi ini digunakan, aplikasi akan tunduk pada virtualisasi pada Windows Vista kecuali Anda memberikan manifes aplikasi dalam file Win32 Resource atau selama langkah build berikutnya.

Pada Visual Studio, atur opsi ini di halaman Properti Aplikasi dengan memilih opsi Buat Aplikasi Tanpa Manifes di daftar drop-down Manifes. Untuk informasi selengkapnya, lihat Halaman Aplikasi, Project Designer (C#).

Sumber

Menyematkan sumber daya yang ditentukan ke dalam file output.

<Resources Include=filename>
  <LogicalName>identifier</LogicalName>
  <Access>accessibility-modifier</Access>
</Resources>

filename adalah file sumber daya .NET yang ingin Anda sematkan dalam file output. identifier (opsional) adalah nama logis untuk sumber daya; nama yang digunakan untuk memuat sumber daya. Defaultnya adalah nama file. accessibility-modifier (opsional) adalah aksesibilitas sumber daya: publik atau privat. Defaultnya adalah publik. Secara default, sumber daya bersifat publik dalam perakitan saat dibuat dengan menggunakan pengompilasi C#. Untuk membuat sumber daya privat, tentukan private sebagai pengubah aksesibilitas. Tidak ada aksesibilitas lain selain public atau private yang diizinkan. Jika filename adalah file sumber daya .NET Framework yang dibuat, misalnya, oleh Resgen.exe atau di lingkungan pengembangan, file tersebut dapat diakses dengan anggota di namespace layanan System.Resources. Untuk informasi selengkapnya, lihat System.Resources.ResourceManager . Untuk semua sumber daya lainnya, gunakan metode GetManifestResource di kelas Assembly untuk mengakses sumber daya pada durasi. Urutan sumber daya dalam file output ditentukan dari urutan yang ditentukan dalam file proyek.

LinkResources

Membuat tautan ke sumber daya .NET pada file output. File sumber daya tidak ditambahkan ke file output. LinkResources berbeda dari opsi Sumber Daya, yang menyematkan file sumber daya dalam file output.

<LinkResources Include=filename>
  <LogicalName>identifier</LogicalName>
  <Access>accessibility-modifier</Access>
</LinkResources>

filename adalah file sumber daya .NET yang ingin Anda tautkan dari rakitan. identifier (opsional) adalah nama logis untuk sumber daya; nama yang digunakan untuk memuat sumber daya. Defaultnya adalah nama file. accessibility-modifier (opsional) adalah aksesibilitas sumber daya: publik atau privat. Defaultnya adalah publik. Secara default, sumber daya bersifat publik dalam perakitan saat dibuat dengan menggunakan pengompilasi C#. Untuk membuat sumber daya privat, tentukan private sebagai pengubah aksesibilitas. Tidak ada pengubah lain selain public atau private yang diizinkan. Jika filename adalah file sumber daya .NET Framework yang dibuat, misalnya, oleh Resgen.exe atau di lingkungan pengembangan, file tersebut dapat diakses dengan anggota di namespace layanan System.Resources. Untuk informasi selengkapnya, lihat System.Resources.ResourceManager . Untuk semua sumber daya lainnya, gunakan metode GetManifestResource di kelas Assembly untuk mengakses sumber daya pada durasi. File yang ditentukan dalam filename bisa dalam format apa pun. Misalnya, Anda mungkin ingin membuat bagian DLL asli dari rakitan, sehingga dapat dipasang ke dalam singgahan perakitan global dan diakses dari kode terkelola pada rakitan. Anda dapat melakukan hal yang sama di Assembly Linker. Untuk informasi selengkapnya, lihat Al.exe (Assembly Linker) dan Bekerja dengan Assembly dan Global Assembly Cache.