Bagikan melalui


Menyelesaikan rakitan pada waktu desain

Saat Anda menambahkan referensi ke rakitan melalui tab .NET dari dialog Tambahkan Referensi, referensi menunjuk ke rakitan referensi perantara; artinya, rakitan yang berisi semua jenis dan informasi tanda tangan, tetapi itu tidak selalu berisi kode. Tab .NET mencantumkan rakitan referensi yang sesuai dengan rakitan runtime dalam .NET Framework. Selain itu, ini mencantumkan rakitan referensi yang sesuai dengan rakitan runtime di folder AssemblyFoldersEx terdaftar yang digunakan oleh pihak ketiga.

Multi-penargetan

Visual Studio memungkinkan Anda menargetkan versi .NET Framework yang berjalan pada beberapa versi .NET Framework. Saat versi .NET Framework baru dirilis, Kerangka Kerja dapat diinstal dengan menggunakan paket penargetan, dan secara otomatis akan muncul sebagai target di Visual Studio.

Cara kerja resolusi jenis

Pada durasi, CLR menyelesaikan jenis dalam rakitan dengan melihat di GAC, direktori bin, dan di setiap jalur pemeriksaan. Ini ditangani oleh pemuat fusi. Tapi, bagaimana pemuat fusi tahu apa yang dicarinya? Ini tergantung resolusi yang dibuat pada waktu desain, saat aplikasi dibuat.

Selama build, pengompilasi menyelesaikan jenis aplikasi dengan menggunakan rakitan referensi. Dalam versi .NET Framework 2.0, 3.0, 3.5, 4, 4.5, dan 4.5.1, rakitan referensi diinstal jika .NET Framework diinstal.

Rakitan referensi disediakan oleh paket penargetan yang dikirim dengan versi SDK .NET Framework yang sesuai. Kerangka Kerja itu sendiri hanya menyediakan rakitan runtime. Untuk membuat aplikasi, Anda perlu menginstal .NET Framework dan SDK .NET Framework yang sesuai.

Saat Anda menargetkan .NET Framework tertentu, sistem build menyelesaikan semua jenis dengan menggunakan rakitan referensi dalam paket penargetan. Pada durasi, pemuat fusi menyelesaikan jenis yang sama ini ke rakitan runtime, yang biasanya terletak di GAC.

Jika rakitan referensi tidak tersedia, maka sistem build menyelesaikan jenis rakitan dengan menggunakan rakitan runtime. Karena rakitan runtime di GAC tidak dibedakan oleh nomor versi minor, ada kemungkinan resolusi akan dibuat ke rakitan yang salah. Ini bisa terjadi, misalnya, jika metode baru yang diperkenalkan dalam .NET Framework versi 3.5 dirujuk saat menargetkan versi 3.0. Build akan berhasil, dan aplikasi akan berjalan di komputer build, tetapi akan gagal jika disebarkan ke komputer yang tidak menginstal versi 3.5.

Paket penargetan yang sekarang dikirim dengan SDK .NET Framework menyertakan daftar semua rakitan runtime dalam versi Kerangka Kerja tersebut, yang disebut daftar redistribusi (redist), sehingga bagi sistem build tidak dapat menyelesaikan jenis terhadap versi rakitan yang salah.