Bagikan melalui


Rakitan dalam .NET

Assembly adalah unit dasar dari penyebaran, kontrol versi, penggunaan kembali, lingkup aktivasi, dan izin keamanan untuk aplikasi berbasis .NET. Rakitan adalah kumpulan jenis dan sumber daya yang dibangun untuk bekerja sama dan membentuk unit fungsionalitas logis. Assembly berupa file eksekusi (.exe) atau pustaka tautan dinamis (.dll) dan merupakan blok penyusun aplikasi .NET. Mereka menyediakan runtime bahasa umum dengan informasi yang diperlukan untuk memahami implementasi jenis.

Di .NET dan .NET Framework, Anda dapat membuat rakitan dari satu atau beberapa file kode sumber. Dalam .NET Framework, rakitan dapat berisi satu atau beberapa modul. Dengan cara ini, proyek yang lebih besar dapat direncanakan sehingga beberapa pengembang dapat mengerjakan file atau modul kode sumber terpisah, yang digabungkan untuk membuat satu perakitan. Untuk informasi selengkapnya tentang modul, lihat Cara: Membuat rakitan multifile.

Rakitan memiliki properti berikut:

  • Rakitan dilaksanakan sebagai file .exe atau .dll.

  • Untuk perpustakaan yang menargetkan .NET Framework, Anda dapat membagikan perakitan antar aplikasi dengan menempatkannya di cache perakitan global (GAC). Anda harus memberi nama kuat pada assembly sebelum dapat menyertakannya dalam GAC. Untuk informasi selengkapnya, lihat Strong-named assemblies.

  • Rakitan hanya dimuat ke dalam memori jika diperlukan. Jika tidak digunakan, maka tidak dimuat. Oleh karena itu, rakitan dapat menjadi cara yang efisien untuk mengelola sumber daya dalam proyek yang lebih besar.

  • Anda dapat secara terprogram mendapatkan informasi tentang perakitan menggunakan pantulan. Untuk informasi selengkapnya, lihat Pantulan (C#) atau Pantulan (Visual Basic).

  • Anda dapat memuat assembly untuk memeriksanya saja menggunakan kelas MetadataLoadContext di .NET dan .NET Framework. MetadataLoadContext menggantikan Assembly.ReflectionOnlyLoad metode.

Rakitan pada Common Language Runtime

Assembly menyediakan runtime bahasa umum dengan informasi yang perlu untuk memahami implementasi tipe. Untuk runtime, tipe tidak ada di luar konteks assembly.

Rakitan mendefinisikan informasi berikut:

  • Kode yang dijalankan oleh Common Language Runtime. Setiap rakitan hanya dapat memiliki satu titik masuk: DllMain, WinMain, atau Main.

  • Batas keamanan. Assembly adalah unit di mana izin diminta dan diberikan. Untuk informasi selengkapnya tentang batas keamanan dalam rakitan, lihat Pertimbangan keamanan perakitan.

  • Batas jenis. Identitas setiap jenis mencakup nama assembly tempatnya berada. Jenis yang disebut MyType yang dimuat dalam cakupan satu rakitan tidak sama dengan jenis yang disebut MyType yang dimuat dalam lingkup rakitan lain.

  • Batas cakupan referensi: Manifes perakitan memiliki metadata yang digunakan untuk menyelesaikan jenis dan memenuhi permintaan sumber daya. Manifes menentukan jenis dan sumber daya untuk diekspos di luar rakitan dan menghitung rakitan lain yang bergantung padanya. Kode bahasa perantara umum (CIL) dalam file portable executable (PE) tidak akan dijalankan kecuali memiliki manifes rakitan terkait.

  • Batasan versi. Rakitan adalah unit yang dapat diberi versi terkecil dalam lingkungan runtime bahasa umum. Semua jenis dan sumber daya dalam rakitan yang sama diberi versi sebagai unit. Manifes perakitan menjelaskan dependensi versi yang Anda tentukan untuk rakitan dependen apa pun. Untuk informasi selengkapnya tentang penerapan versi, lihat Penerapan versi rakitan.

  • Unit penyebaran: Ketika aplikasi memulai, hanya assembly yang dipanggil oleh aplikasi sejak awal yang harus ada. Rakitan lain, seperti rakitan yang berisi sumber daya pelokalan atau kelas utilitas, dapat diambil sesuai permintaan. Proses ini memungkinkan aplikasi menjadi sederhana dan tipis saat pertama kali diunduh. Untuk informasi selengkapnya tentang menyebarkan rakitan, lihat Menyebarkan aplikasi.

  • Unit eksekusi berdampingan: Untuk informasi selengkapnya tentang menjalankan beberapa versi rakitan, lihat Rakitan dan eksekusi berdampingan.

Membuat rakitan

Rakitan bisa statis atau dinamis. Rakitan statis disimpan pada disk dalam file portable executable (PE). Rakitan statis dapat mencakup antarmuka, kelas, dan sumber daya seperti bitmap, file JPEG, dan file sumber daya lainnya. Anda juga dapat membuat rakitan dinamis, yang berjalan langsung dari memori dan tidak disimpan ke disk sebelum eksekusi. Anda dapat menyimpan rakitan dinamis ke disk setelah dijalankan.

Ada beberapa cara untuk membuat rakitan. Anda dapat menggunakan alat pengembangan, seperti Visual Studio yang dapat membuat file.dll atau .exe . Anda dapat menggunakan alat di Windows SDK untuk membuat rakitan dengan modul dari lingkungan pengembangan lainnya. Anda juga dapat menggunakan API runtime bahasa umum, seperti System.Reflection.Emit, untuk membuat rakitan dinamis.

Kompilasi rakitan dengan membuatnya di Visual Studio, membuatnya dengan alat antarmuka baris perintah .NET Core, atau membangun rakitan .NET Framework dengan pengkompilasi baris perintah. Untuk informasi selengkapnya tentang membangun rakitan menggunakan .NET CLI, lihat gambaran umum .NET CLI.

Nota

Untuk membuat rakitan di Visual Studio, pada menu Build , pilih Bangun.

Manifes perakitan

Setiap rakitan memiliki file manifes perakitan . Mirip dengan daftar isi, manifes perakitan berisi:

  • Identitas majelis (nama dan versi)

  • Tabel file yang menjelaskan semua file lain yang membentuk rakitan, seperti rakitan lain yang Anda buat yang .exe atau file .dll Anda bergantung pada, file bitmap, atau file Readme.

  • Daftar referensi perakitan, yang merupakan daftar semua dependensi eksternal, seperti .dllatau file lainnya. Referensi rakitan berisi referensi ke objek global dan privat. Objek global tersedia untuk semua aplikasi lainnya. Di .NET Core, objek global digabungkan dengan runtime .NET Core tertentu. Dalam .NET Framework, objek global berada di cache perakitan global (GAC). System.IO.dll adalah contoh assembly di Global Assembly Cache (GAC). Objek privat harus berada di tingkat direktori pada atau di bawah direktori tempat aplikasi Anda diinstal.

Komponen berisi informasi tentang konten, versi, dan ketergantungan. Jadi aplikasi yang menggunakannya tidak perlu mengandalkan sumber eksternal, seperti registri pada sistem Windows, agar berfungsi dengan baik. Rakitan mengurangi konflik.dll dan membuat aplikasi Anda semakin andal dan lebih mudah disebarkan. Dalam banyak kasus, Anda dapat menginstal . Aplikasi berbasis NET hanya dengan menyalin filenya ke komputer target. Untuk informasi selengkapnya, lihat Manifes perakitan.

Menambahkan referensi ke rakitan

Untuk menggunakan rakitan dalam aplikasi, Anda harus menambahkan referensi ke dalamnya. Ketika sebuah perakitan dirujuk, semua jenis, properti, metode, dan anggota lain dari namespace-nya yang dapat diakses tersedia untuk aplikasi Anda seolah-olah kode mereka adalah bagian dari file sumber Anda.

Nota

Sebagian besar rakitan dari Pustaka Kelas .NET dirujuk secara otomatis. Jika rakitan sistem tidak dirujuk secara otomatis, tambahkan referensi dengan salah satu cara berikut:

  • Untuk .NET dan .NET Core, tambahkan referensi ke paket NuGet yang berisi rakitan. Gunakan Manajer Paket NuGet di Visual Studio atau tambahkan <PackageReference> elemen untuk rakitan ke proyek .csproj atau .vbproj .
  • Untuk .NET Framework, tambahkan referensi ke perakitan menggunakan dialog Tambahkan Referensi di Visual Studio atau -reference opsi baris perintah untuk pengkompilasi C# atau Visual Basic .

Di C#, Anda dapat menggunakan dua versi rakitan yang sama dalam satu aplikasi. Untuk informasi selengkapnya, lihat alias ekstern.

Judul Deskripsi
Isi perakitan Elemen yang membentuk rakitan.
Manifes perakitan Data dalam manifes perakitan, dan bagaimana data disimpan dalam rakitan.
Cache perakitan global Bagaimana GAC menyimpan dan menggunakan rakitan.
Rakitan bernama kuat Karakteristik rakitan dengan nama kuat.
Pertimbangan keamanan perakitan Cara kerja keamanan dengan rakitan.
Versi perakitan Gambaran umum kebijakan penerapan versi .NET Framework.
Penempatan rakitan Tempat untuk menemukan rakitan.
Perpustakaan kode dan eksekusi paralel Gunakan beberapa versi runtime atau rakitan secara bersamaan.
Memancarkan metode dan rakitan dinamis Cara membuat rakitan dinamis.
Bagaimana runtime menemukan rakitan Bagaimana .NET Framework menyelesaikan referensi perakitan saat runtime.

Referensi

System.Reflection.Assembly

Lihat juga