Bagikan melalui


Menambahkan atau menghapus referensi dengan menggunakan Reference Manager

Anda bisa menggunakan kotak dialog Manajer Referensi untuk menambahkan dan mengelola referensi ke komponen yang Anda, Microsoft, atau perusahaan lain kembangkan. Jika Anda mengembangkan aplikasi Universal Windows, proyek Anda secara otomatis mereferensikan semua DLL Windows SDK yang benar. Saat Anda membuat proyek .NET, proyek Anda secara otomatis mereferensikan komponen yang dibutuhkannya, seperti .NET SDK, tetapi Anda perlu menambahkan referensi saat Anda menambahkan fungsionalitas. Beberapa API .NET diekspos dalam komponen yang harus Anda tambahkan secara manual. Referensi ke komponen COM atau komponen kustom harus ditambahkan secara manual.

Jika paket NuGet tersedia untuk pustaka yang Anda rujuk, gunakan Manajer Paket NuGet. Lihat Menginstal dan menggunakan paket NuGet.

Kotak dialog Manajer Referensi

Kotak dialog Manajer Referensi memperlihatkan kategori yang berbeda di sisi kiri, bergantung pada jenis proyek:

  • Rakitan, dengan subgrup Kerangka Kerja dan Ekstensi (hanya.NET Framework)

  • COM mencantumkan semua komponen COM yang tersedia untuk referensi

  • Proyek

  • Proyek Bersama

  • Windows, dengan subgrup Core dan Extensions . Anda dapat menjelajahi referensi di Windows SDK atau ekstensi SDK dengan menggunakan Browser Objek.

  • Telusuri, dengan subgrup Terbaru

    Nota

    Anda mungkin tidak melihat Telusuri dalam kotak dialog Manajer Referensi jika Anda mengembangkan proyek C++.

Menambahkan referensi

  1. Di Penjelajah Solusi, klik kanan node Referensi atau Dependensi , lalu pilih Tambahkan Referensi Proyek, Tambahkan Referensi Proyek Bersama, atau Tambahkan Referensi COM dari menu konteks. (Anda dapat mengklik kanan simpul proyek dan memilih Tambahkan dari menu fly-out untuk memilih dari opsi ini juga.)

    Cuplikan layar dialog Tambahkan Referensi dari menu konteks di Penjelajah Solusi.

    Manajer Referensi membuka dan mencantumkan referensi yang tersedia menurut grup.

    Cuplikan layar kotak dialog Manajer Referensi di Visual Studio.

  2. Pilih referensi untuk ditambahkan, lalu pilih OK.

    Nota

    Jika Anda tidak melihat referensi yang Anda cari, pilih Telusuri untuk menemukan referensi. (Jika Anda mengembangkan proyek C++, Anda mungkin tidak melihat opsi menelusuri.)

Tab Rakitan (hanya .NET Framework)

Nota

Tab Rakitan tidak tersedia untuk proyek yang menargetkan .NET Core, atau .NET 5 dan yang lebih baru. Pilih Telusuri untuk menemukan rakitan di sistem file dan tambahkan sebagai referensi. Untuk melihat rakitan yang dirujuk dalam proyek, perluas simpul Dependensi dalam proyek. Dari simpul Dependensi , Anda dapat mengklik kanan untuk menambahkan atau menghapus referensi proyek, melihat atau menghapus rakitan di simpul Rakitan , atau membuka browser paket NuGet untuk mengelola paket NuGet. Lihat Menginstal dan mengelola paket di Visual Studio menggunakan NuGet Package Manager dalam dokumentasi NuGet.

Untuk proyek .NET Framework, tab Rakitan mencantumkan semua rakitan .NET yang tersedia untuk dirujuk. Tab Rakitan tidak mencantumkan rakitan apa pun dari cache perakitan global (GAC) karena rakitan di GAC adalah bagian dari lingkungan run-time. Jika Anda menyebarkan atau menyalin aplikasi yang berisi referensi ke assembly yang terdaftar di GAC (Global Assembly Cache), assembly tersebut tidak disebarkan atau disalin dengan aplikasi, terlepas dari pengaturan Salin Lokal. Untuk informasi selengkapnya, lihat Mengelola referensi dalam proyek.

Saat Anda menambahkan referensi secara manual ke salah satu namespace EnvDTE (EnvDTE, , EnvDTE80, EnvDTE90EnvDTE90a, atau EnvDTE100), atur properti Embed Interop Type dari referensi ke False di jendela Properti. Mengatur properti ini ke True dapat menyebabkan masalah build karena properti EnvDTE tertentu yang tidak dapat disematkan.

Semua proyek desktop berisi referensi implisit ke mscorlib. Proyek Visual Basic berisi referensi implisit ke Microsoft.VisualBasic. Semua proyek berisi referensi implisit ke System.Core, meskipun dihapus dari daftar referensi.

Tab Rakitan terdiri dari dua subtab:

  1. Kerangka kerja mencantumkan semua rakitan yang merupakan kerangka kerja yang ditargetkan.

    Untuk proyek yang tidak menargetkan .NET Core atau Universal Windows Platform, tab Framework menghitung rakitan dari kerangka kerja yang ditargetkan. Pengguna harus menambahkan referensi apa pun yang diperlukan aplikasi.

    Proyek Universal Windows berisi referensi ke semua rakitan dalam kerangka kerja yang ditargetkan secara default. Dalam proyek terkelola, simpul baca-saja di bawah folder Referensi di Penjelajah Solusi menunjukkan referensi ke seluruh kerangka kerja. Dengan demikian, tab Kerangka Kerja tidak menghitung salah satu rakitan dari kerangka kerja dan sebaliknya menampilkan pesan berikut: "Semua rakitan Kerangka Kerja sudah dirujuk. Silakan gunakan Browser Objek untuk menjelajahi referensi dalam Kerangka Kerja."

  2. Ekstensi mencantumkan semua assembly yang dikembangkan oleh vendor eksternal untuk komponen dan kendali guna memperluas kerangka kerja yang ditargetkan. Tergantung pada tujuan aplikasi pengguna, aplikasi mungkin memerlukan rakitan ini.

    Ekstensi diisi dengan menenumerasi assembly yang terdaftar di lokasi-lokasi berikut:

    Mesin 32-bit:

    • HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    Mesin 64-bit:

    • HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    Dan versi lama dari [Pengidentifikasi Kerangka Kerja Target]

    Misalnya, jika proyek menargetkan .NET Framework 4 pada komputer 32-bit, Ekstensi menghitung rakitan yang terdaftar di bawah \Microsoft.NETFramework\v4.0\AssemblyFoldersEx, \Microsoft.NETFramework\v3.5\AssemblyFoldersEx, \Microsoft.NETFramework\v3.0\AssemblyFoldersEx, dan \Microsoft.NETFramework\v2.0\AssemblyFoldersEx.

Beberapa komponen dalam daftar mungkin tidak ditampilkan, tergantung pada versi kerangka kerja proyek Anda. Situasi ini dapat terjadi dalam kondisi berikut:

  • Komponen yang menggunakan versi kerangka kerja terbaru tidak kompatibel dengan proyek yang menargetkan versi yang lebih lama.

    Untuk informasi tentang cara mengubah versi kerangka kerja target untuk proyek, lihat Gambaran umum penargetan kerangka kerja.

  • Komponen yang menggunakan versi .NET Framework yang lebih lama tidak kompatibel dengan proyek yang menargetkan .NET Framework yang lebih baru.

Untuk informasi selengkapnya tentang kompatibilitas versi antara versi .NET Framework, lihat Kompatibilitas versi.

Anda harus menghindari penambahan referensi file ke output proyek lain dalam solusi yang sama, karena melakukannya dapat menyebabkan kesalahan kompilasi. Sebagai gantinya, gunakan tab Proyek dari kotak dialog Tambahkan Referensi untuk membuat referensi proyek-ke-proyek. Praktik ini mempermudah pengembangan tim dengan memungkinkan manajemen perpustakaan kelas yang lebih baik dalam proyek Anda. Untuk informasi selengkapnya, lihat Memecahkan masalah referensi yang rusak.

Nota

Referensi file alih-alih referensi proyek dibuat jika versi kerangka kerja target dari satu proyek adalah .NET Framework 4.5 atau yang lebih baru, dan versi target proyek lainnya adalah .NET Framework 2, 3, 3.5, atau 4.0. Untuk informasi selengkapnya tentang .NET, .NET Framework, dan .NET Core, lihat Apa itu .NET (dan .NET Core).

Untuk menampilkan rakitan dalam kotak dialog Tambahkan Referensi

  • Pindahkan atau salin rakitan ke salah satu lokasi berikut:

    • Direktori proyek saat ini. (Anda dapat menemukan rakitan ini dengan menggunakan tab Telusuri.)

    • Direktori proyek lain dalam solusi yang sama. (Anda dapat menemukan rakitan ini dengan menggunakan tab Proyek .)

    - atau -

  • Atur kunci registri yang menentukan lokasi rakitan yang akan ditampilkan:

    Untuk sistem operasi 32-bit, tambahkan salah satu kunci registri berikut.

    • [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    Untuk sistem operasi 64-bit, tambahkan salah satu kunci registri berikut di sarang registri 32-bit.

    • [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    <VersionMinimum> adalah versi kerangka kerja terendah yang berlaku. Jika <VersionMinimum> adalah v3.0, folder yang ditentukan dalam AssemblyFoldersEx berlaku untuk proyek yang menargetkan .NET Framework 3.0 dan yang lebih baru.

    <AssemblyLocation> adalah direktori rakitan yang ingin Anda munculkan dalam kotak dialog Tambahkan Referensi , misalnya, C:\MyAssemblies.

    Membuat kunci registri di bawah simpul HKEY_LOCAL_MACHINE memungkinkan semua pengguna untuk melihat rakitan di lokasi yang ditentukan dalam kotak dialog Tambahkan Referensi . Membuat kunci registri di bawah simpul HKEY_CURRENT_USER hanya memengaruhi pengaturan untuk pengguna saat ini.

    Buka kotak dialog Tambahkan Referensi lagi. Rakitan akan muncul pada tab .NET . Jika tidak, pastikan rakitan terletak di direktori AssemblyLocation yang ditentukan, mulai ulang Visual Studio, dan coba lagi.

Tab Proyek

Tab Proyek mencantumkan semua proyek yang kompatibel dalam solusi saat ini, di subtab Solusi .

Proyek dapat mereferensikan proyek lain yang menargetkan versi kerangka kerja yang berbeda. Misalnya, Anda dapat membuat proyek yang menargetkan .NET 8.0 tetapi merujuk pada rakitan yang dibangun untuk .NET 6.0. Namun, proyek .NET 6.0 tidak dapat mereferensikan proyek .NET Framework 8.0. Untuk informasi selengkapnya, lihat ikhtisar penargetan Framework .

Tab Proyek Bersama

Tambahkan referensi ke proyek bersama pada tab Proyek Bersama dari kotak dialog Manajer Referensi. Proyek Bersama memungkinkan Anda menulis kode umum yang dirujuk oleh banyak proyek aplikasi yang berbeda.

Tab Windows Universal

Tab Universal Windows mencantumkan semua SDK yang khusus untuk platform tempat sistem operasi Windows berjalan. Tab ini memiliki dua subgrup: Core dan Extensions.

Subgrup inti

Proyek aplikasi Universal Windows memiliki referensi ke Universal Windows SDK secara default. Oleh karena itu, subgrup Core di Reference Manager tidak mencantumkan salah satu komponen dari Universal Windows SDK.

Kelompok ekstensi

Ekstensi mencantumkan SDK pengguna yang memperluas platform Windows yang ditargetkan.

SDK adalah kumpulan file yang diperlakukan Visual Studio sebagai komponen tunggal. Di tab Ekstensi , SDK yang berlaku untuk proyek tempat kotak dialog Manajer Referensi dipanggil dicantumkan sebagai entri tunggal. Saat ditambahkan ke proyek, semua konten SDK secara otomatis dipakai oleh Visual Studio sehingga pengguna tidak perlu melakukan tindakan lebih lanjut untuk memanfaatkan konten SDK dalam IntelliSense, kotak alat, desainer, Browser Objek, pembuatan, penyebaran, penelusuran kesalahan, dan pemaketan.

Untuk informasi tentang cara menampilkan SDK Anda di tab Ekstensi , lihat Membuat Kit Pengembangan Perangkat Lunak.

Nota

Jika proyek mereferensikan SDK yang bergantung pada SDK lain, Visual Studio tidak menggunakan SDK kedua kecuali Anda menambahkan referensi secara manual ke SDK kedua. Saat Anda memilih SDK pada tab Ekstensi , kotak dialog Manajer Referensi membantu Anda mengidentifikasi dependensi SDK dengan mencantumkan dependensi apa pun di panel detail.

Jika jenis proyek tidak mendukung ekstensi, tab ini tidak muncul dalam kotak dialog Manajer Referensi.

Tab COM

Tab COM mencantumkan semua komponen COM yang tersedia untuk dirujuk. Jika Anda ingin menambahkan referensi ke DLL COM terdaftar yang berisi manifes internal, batalkan pendaftaran DLL terlebih dahulu. Jika tidak, Visual Studio menambahkan referensi assembly sebagai kontrol ActiveX, bukan sebagai DLL asli.

Jika jenis proyek tidak mendukung COM, tab tidak muncul dalam kotak dialog Manajer Referensi.

Jelajah

Anda dapat menggunakan tombol Telusuri untuk menelusuri komponen atau rakitan dalam sistem file.

Proyek dapat mereferensikan komponen yang menargetkan versi kerangka kerja yang berbeda. Misalnya, Anda dapat membuat aplikasi yang menargetkan .NET Framework 4.7.2 tetapi mereferensikan komponen yang menargetkan .NET Framework 4. Untuk informasi selengkapnya, lihat ikhtisar penargetan Framework .

Hindari menambahkan referensi file ke output proyek lain dalam solusi yang sama, karena taktik ini dapat menyebabkan kesalahan kompilasi. Sebagai gantinya, gunakan tab Solusi dari kotak dialog Manajer Referensi untuk membuat referensi proyek-ke-proyek. Hal ini membuat pengembangan tim menjadi lebih mudah dengan memungkinkan manajemen yang lebih baik dari pustaka kelas yang Anda buat dalam proyek Anda. Untuk informasi selengkapnya, lihat Memecahkan masalah referensi yang rusak.

Anda tidak dapat menelusuri ke SDK dan menambahkannya ke proyek Anda. Anda hanya dapat menelusuri ke file (misalnya, assembly atau .winmd) dan menambahkannya ke proyek Anda.

Saat melakukan referensi file ke WinMD, tata letak yang diharapkan adalah file <FileName.winmd>, <FileName>.dll, dan <FileName.pri> semuanya ditempatkan bersama satu sama lain. Jika Anda mereferensikan WinMD dalam skenario berikut, kumpulan file yang tidak lengkap disalin ke direktori output proyek dan, akibatnya, kegagalan build dan runtime terjadi.

  • Komponen asli: proyek native membuat satu WinMD untuk setiap set namespace yang tidak saling berhubungan dan satu DLL yang terdiri dari implementasi. WinMD memiliki nama yang beragam. Saat mereferensikan file komponen asli ini, MSBuild tidak mengenali bahwa WinMD yang memiliki nama berbeda membuat satu komponen. Jadi, hanya FileName<.dll> dan <FileName.winmd> yang disalin secara identik, dan terjadi kesalahan runtime. Untuk mengatasi masalah ini, buat SDK ekstensi. Untuk informasi selengkapnya, lihat Membuat Kit Pengembangan Perangkat Lunak.

  • Menggunakan kontrol: minimal, kontrol XAML terdiri dari <FileName.winmd>, <FileName>.dll, <FileName.pri>, <XamlName.xaml>, dan <ImageName>.jpg. Saat proyek dibangun, file sumber daya yang terkait dengan referensi file tidak disalin ke direktori output proyek, dan hanya <FileName.winmd>, <FileName>.dll dan <FileName.pri> yang disalin. Kesalahan build dicatat yang menunjukkan bahwa sumber daya <XamlName.xaml> dan <ImageName>.jpg hilang. Agar berhasil, salin file sumber daya ini secara manual ke direktori output proyek untuk build dan debugging/runtime. Untuk mengatasi masalah ini, buat SDK ekstensi dengan mengikuti langkah-langkah dalam Membuat Kit Pengembangan Perangkat Lunak atau mengedit file proyek untuk menambahkan properti berikut:

    <PropertyGroup>
       <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    

    Nota

    Jika Anda menambahkan properti, build mungkin berjalan lebih lambat.

Baru saja

Rakitan, COM, Windows, dan Telusuri masing-masing mendukung tab Terbaru , yang menghitung daftar komponen yang baru-baru ini ditambahkan ke proyek.

Bilah pencarian dalam kotak dialog Manajer Referensi beroperasi di atas tab yang sedang fokus. Misalnya, jika Anda mengetik "Sistem" di bilah pencarian saat tab Solusi sedang fokus, pencarian tidak mengembalikan hasil apa pun kecuali solusinya terdiri dari nama proyek yang berisi "Sistem".

Menghapus referensi

Anda dapat menghapus referensi yang tidak digunakan untuk proyek gaya SDK di Visual Studio dengan menggunakan item menu Hapus Referensi yang Tidak Digunakan .

Cuplikan layar dialog Hapus Referensi yang Tidak Digunakan dari menu konteks di Penjelajah Solusi.

Untuk informasi selengkapnya, lihat Menghapus referensi yang tidak digunakan.