Bagikan melalui


Mengatasi kesalahan dan peringatan yang terkait dengan referensi perakitan

  • CS0012: Jenis 'type' didefinisikan dalam assembly yang tidak dirujuk. Anda harus menambahkan referensi ke assembly 'assembly'.
  • CS0234: Tipe atau nama namespace tidak ada di namespace (apakah Anda kehilangan referensi assembly?)
  • CS0246: Jenis atau nama namespace tidak dapat ditemukan (apakah Anda melewatkan direktif 'using' atau referensi assembly?)
  • CS0400: Jenis atau nama namespace tidak dapat ditemukan di namespace global (apakah Anda kurang referensi rakitan?)
  • CS0735: Jenis yang ditentukan sebagai argumen untuk atribut TypeForwardedToAttribute tidak valid.
  • CS1068: Nama jenis tidak dapat ditemukan di namespace global. Jenis ini telah diteruskan ke rakitan lain. Pertimbangkan untuk menambahkan referensi ke rakitan tersebut.
  • CS1069: Nama jenis tidak dapat ditemukan di namespace. Jenis ini telah diteruskan ke rakitan lain. Pertimbangkan untuk menambahkan referensi ke rakitan tersebut.
  • CS1070: Nama jenis tidak dapat ditemukan. Jenis ini telah diteruskan ke rakitan lain. Pertimbangkan untuk menambahkan referensi ke rakitan tersebut.
  • CS1704: Rakitan dengan nama sederhana yang sama telah diimpor. Coba hapus salah satu referensi atau tanda tangani untuk mengaktifkannya secara berdampingan.
  • CS1714: Kelas dasar atau antarmuka jenis ini tidak dapat diselesaikan atau tidak valid.
  • CS1760: Beberapa rakitan mengacu pada metadata yang sama tetapi hanya satu yang merupakan referensi tertaut (ditentukan menggunakan opsi /link); pertimbangkan untuk menghapus salah satu referensi.
  • CS7008: Nama assembly dicadangkan dan tidak dapat dirujuk dalam sesi interaktif.
  • CS7068: Referensi ke tipe mengklaim bahwa itu ditentukan dalam rakitan ini, tetapi tidak didefinisikan dalam sumber atau modul tambahan apa pun.
  • CS7069: Referensi ke tipe mengklaim bahwa itu didefinisikan dalam rakitan lain, tetapi tidak dapat ditemukan.
  • CS7071: Referensi rakitan tidak valid dan tidak dapat diselesaikan.
  • CS7079: Jenis ditentukan dalam modul yang belum ditambahkan. Anda harus menambahkan modul.
  • CS8090: Ada kesalahan dalam rakitan yang dirujuk.
  • CS8203: Nama rakitan tidak valid.
  • CS9286: Tipe tidak berisi definisi dan tidak ada anggota ekstensi yang dapat diakses untuk tipe penerima yang dapat ditemukan (apakah Anda kehilangan using directive atau referensi assembly?)

Selain itu, peringatan berikut dibahas dalam artikel ini:

  • CS1683: Referensi ke tipe 'Tipe Nama' mengklaim bahwa itu didefinisikan dalam assembli ini, tetapi tidak didefinisikan dalam sumber atau modul tambahan apa pun.

Referensi yang hilang

Kesalahan dan peringatan berikut menunjukkan bahwa Anda kehilangan referensi perakitan:

  • CS0012: Jenis 'jenis' didefinisikan dalam rakitan yang tidak dirujuk. Anda harus menambahkan referensi ke rakitan 'rakitan'.
  • CS0234: Tipe atau nama ruang nama tidak ada dalam ruang nama (apakah ada referensi rakitan yang hilang?)
  • CS0246: Jenis atau nama namespace tidak dapat ditemukan (mungkin Anda melewatkan direktif menggunakan atau referensi assembly?)
  • CS9286: Jenis tidak berisi definisi dan anggota ekstensi yang dapat diakses untuk jenis penerima tidak dapat ditemukan (apakah Anda kehilangan direktif 'using' atau referensi rakitan?)

Kesalahan kompilator ini menunjukkan salah satu masalah ini dalam kode Anda:

  • Proyek tidak mereferensikan rakitan yang diperlukan. Untuk memperbaiki kesalahan ini, tambahkan referensi ke rakitan yang diperlukan.
  • Anda salah eja nama suatu jenis. Periksa nama tipe.
  • Anda menggunakan nama variabel atau fungsi di tempat nama yang System.Type diharapkan, seperti dalam typeof operator atau is operator.
  • Anda menggunakan operator cakupan global, (::) ketika jenis tidak ada di namespace global.
  • Anda mengakses anggota ekstensi dan namespace yang tidak ditentukan dalam direktif using, atau Anda tidak mereferensikan assembly yang berisi ekstensi.

Ketika rakitan tampaknya dirujuk

Jika rakitan tampaknya dirujuk dalam proyek Anda tetapi Anda masih menerima CS0012, coba langkah-langkah pemecahan masalah ini:

  • Pulihkan paket: Jalankan dotnet restore untuk memastikan semua referensi paket diselesaikan dengan benar, terutama setelah menginstal atau menghapus instalan paket NuGet.

  • Hapus cache dan pemulihan paket NuGet:

    dotnet nuget locals all --clear
    dotnet restore
    
  • Periksa konflik versi: Verifikasi bahwa semua rakitan yang dirujuk menggunakan versi yang kompatibel. Cari peringatan pengalihan ikatan dalam output build.

  • Bersihkan solusi dan bangun kembali untuk memastikan tidak ada referensi kedaluarsa yang tersisa:

    dotnet clean
    dotnet build
    
  • Verifikasi integritas paket: Jika kesalahan terjadi setelah operasi paket, pastikan paket diinstal dengan benar dengan menghapus dan menginstalnya kembali:

    dotnet remove package [PackageName]
    dotnet add package [PackageName]
    

Penerusan tipe

  • CS1068: Nama jenis tidak dapat ditemukan di namespace global. Jenis ini telah diteruskan ke rakitan lain. Pertimbangkan untuk menambahkan referensi ke rakitan tersebut.
  • CS1069: Nama jenis tidak dapat ditemukan di namespace. Jenis ini telah diteruskan ke rakitan lain. Pertimbangkan untuk menambahkan referensi ke rakitan tersebut.
  • CS1070: Nama jenis tidak dapat ditemukan. Jenis ini telah diteruskan ke rakitan lain. Pertimbangkan untuk menambahkan referensi ke rakitan tersebut.

Kesalahan ini menunjukkan kesalahan yang merujuk jenis yang diteruskan ke rakitan yang berbeda. Untuk mengatasi salah satu kesalahan ini, tambahkan referensi ke rakitan yang ditunjukkan dalam pesan kesalahan.

Referensi duplikat

Kesalahan berikut menunjukkan referensi rakitan duplikat:

  • CS1704: Rakitan dengan nama sederhana yang sama telah diimpor. Coba hapus salah satu referensi atau tanda tangani untuk mengaktifkannya secara berdampingan.
  • CS1760: Beberapa rakitan mengacu pada metadata yang sama tetapi hanya satu yang merupakan referensi tertaut (ditentukan menggunakan opsi /link); pertimbangkan untuk menghapus salah satu referensi.

Untuk memperbaiki kesalahan ini, Anda harus menghapus salah satu referensi, atau mengatasi duplikasi. Penyebab duplikasi meliputi:

  • Beberapa rakitan yang tidak ditandatangani memiliki nama yang sama.
  • Proyek Anda mereferensikan beberapa versi rakitan yang sama.

Referensi rakitan tidak valid

Kesalahan berikut menunjukkan bahwa referensi rakitan tidak valid:

  • CS7008: Nama assembly dicadangkan dan tidak dapat digunakan sebagai referensi dalam sesi interaktif.
  • CS7069: Referensi klaim bahwa tipe tersebut didefinisikan dalam majelis lain, tetapi tidak dapat ditemukan.
  • CS7071: Referensi rakitan tidak valid dan tidak dapat diselesaikan.
  • CS7079: Jenis ditentukan dalam modul yang belum ditambahkan. Anda harus menambahkan modul.
  • CS8090: Ada kesalahan dalam rakitan yang dirujuk.
  • CS8203: Nama rakitan tidak valid.

Peringatan berikut ini juga menunjukkan rakitan referensi yang tidak valid:

  • CS1683: Referensi ke tipe 'Nama Jenis' menyatakan bahwa tipe tersebut didefinisikan dalam rakitan ini, tetapi tidak didefinisikan dalam sumber atau modul tambahan apa pun.

Periksa apakah nama rakitan dieja dengan benar. File rakitan yang dirujuk mungkin tidak valid.