Saya mendapatkan kesalahan ini:
Tipe atau nama namespace 'AutoMapper' tidak dapat ditemukan (apakah Anda melewatkan direktif penggunaan atau referensi perakitan?)
Yang lucu adalah saya sudah memiliki referensi itu dalam proyek saya:
Dan ini kode saya:
using System.Collections.Generic;
using DataContract;
using SelectorDAL;
using AutoMapper;
namespace SpecimenSelect
{
public class SpecimenSelect : ISpecimenSelect
{
public SpecimenSelect()
{
SetupMaps();
}
private static void SetupMaps()
{
Mapper.CreateMap<SpecimenDetail, SpecimenDetailContract>();
}
Hal aneh lainnya adalah saya memiliki dua proyek lain dalam solusi saya yang sama-sama menggunakan AutoMapper dan mereferensikan file AutoMapper.dll yang persis sama. Keduanya bekerja dengan sangat baik.
Berikut ini screenshotnya:
dan di sini adalah kode itu (yang mengkompilasi dengan baik):
using System.Collections.Generic;
using AutoMapper;
using DataContract;
using SelectorDAL;
namespace PatientSelect
{
public class PatientSelect : IPatientSelect
{
public PatientSelect()
{
SetupMaps();
}
private void SetupMaps()
{
Mapper.CreateMap<Patient, PatientContract>();
Mapper.CreateMap<OrderedTest, OrderedTestsContract>();
Mapper.CreateMap<Gender, GenderContract>();
}
Kedua referensi tersebut tampaknya memiliki data yang sama di halaman properti.
Apa yang saya lewatkan?
Saya mencoba:
- Mulai ulang Visual Studio
- Referensi tanpa menggunakan pernyataan (yaitu
AutoMapper.Mapper.CreateMap
) - Bersihkan dan Bangun Kembali
Ada ide lain?
Jawaban:
Periksa untuk memastikan bahwa proyek Anda tidak diatur untuk menggunakan Profil Klien .NET Framework 4.
Anda dapat memeriksa / mengubahnya dengan mengklik kanan proyek Anda (bukan solusinya), pilih Properties -> Application -> Framework target . Kerangka target adalah dropdown pada halaman itu.
Ini adalah masalah dalam Visual Studio (saya bahkan akan menyebutnya bug). AutoMapper membutuhkan majelis yang dikecualikan dari Profil Klien .NET Framework 4. Karena proyek Anda menggunakan versi kerangka kerja itu rusak.
Kesalahan serupa akan menyebar ke proses pembuatan ketika versi .NET Framework untuk proyek yang Anda rujuk lebih tinggi daripada proyek yang membuat referensi. mis. Penargetan proyek 4.5 yang merujuk penargetan proyek 4.5.1 akan memberikan Anda kesalahan yang sama.
Harus ada pesan kesalahan yang lebih baik ketika ini terjadi karena tidak ada penjelasan rasional mengapa itu tidak akan membangun karena pesan kesalahan memberitahu Anda untuk referensi perakitan yang telah Anda rujuk dengan jelas.
sumber
Izinkan saya mengajukan pertanyaan bodoh: Mungkinkah ada dua file automapper.dll ? Satu dengan
AutoMapper
namespace dan satu tanpa? Konfirmasikan jalur di kedua proyek.Saya juga memperhatikan bahwa urutan
using
perintahnya berbeda. Seharusnya tidak masalah, tetapi apakah Anda sudah mencoba mengocoknya?sumber
Jika kelas Anda tidak dikompilasi, bahkan jika itu ada dalam proyek, periksa ini:
sumber
Ini harus menjadi solusi paling sederhana jika semua jawaban lain tidak membantu Anda
Saya mencari apa yang salah dengan pengaturan saya di antara jawaban, Mencoba semuanya - tidak ada yang berhasil, Kemudian saya menyadari Visual Studio 2018 dikembangkan oleh Microsoft . Jadi saya melakukan apa yang dilakukan kebanyakan orang,
Visual Studio Restarted Dan Berhasil
sumber
Saya menyelesaikan masalah ini dengan mengklik kanan pada folder yang berisi file dan memilih Kecualikan Dari Proyek dan kemudian mengklik kanan lagi dan memilih Sertakan Dalam Proyek (Anda pertama-tama harus mengaktifkan Tampilkan Semua File untuk membuat folder yang dikecualikan terlihat)
sumber
¯\_(ツ)_/¯
Saya memiliki masalah yang serupa dengan referensi yang tidak dikenali di VS2010 dan jawaban di sini tidak dapat memperbaikinya.
Masalah dalam solusi saya terkait dengan perluasan jalur tempat proyek yang dirujuk berada. Ketika saya bekerja dengan SVN, saya membuat cabang repositori untuk melakukan beberapa pengujian dan cabang itu meningkatkan dua level dalam struktur path, sehingga path menjadi terlalu panjang untuk dapat digunakan di windows. Ini tidak menimbulkan kesalahan tetapi tidak mengenali namespace dari referensi proyek. Ketika saya memperbaiki lokasi proyek untuk memiliki jalan yang lebih kecil semuanya berjalan dengan baik.
sumber
Dalam kasus saya, dll yang direferensikan dibangun dalam versi yang lebih tinggi .Net Framework. Setelah saya menambahkan referensi, saya bisa menggunakannya. Tetapi segera setelah saya membangun, kesalahan 'referensi hilang' akan muncul. Saya menyegarkan dll kesalahan akan pergi tetapi tidak akan pernah membangun. Posting ini membuat saya memeriksa versi kerangka kerja dan dengan demikian saya dapat menyelesaikannya dengan membangun proyek yang direferensikan dalam versi yang sama.
sumber
Mungkin tabel jenis proyek dalam kondisi yang salah. Saya akan mencoba untuk menghapus / menambahkan referensi dan jika itu tidak berhasil, buat proyek lain, impor kode saya, dan lihat apakah itu berhasil.
Saya mengalami ini saat menggunakan VS 2005, orang akan mengharapkan MS untuk memperbaiki masalah tertentu sekarang ..
sumber
Pertanyaannya telah diberikan, tetapi ada detail tambahan yang belum diuraikan yang perlu diperiksa.
Saya juga memiliki perilaku ini, di mana proyek B direferensikan dalam proyek A, tetapi namespace proyek B tidak diakui dalam proyek A. Setelah beberapa penggalian, saya menemukan jalan saya terlalu panjang. Dengan mengurangi jalur proyek (baik A dan B) referensi menjadi terlihat dan tersedia.
Saya menguji teori ini dengan membuat proyek C pada kedalaman jalur yang jauh lebih rendah. Saya mereferensikan proyek C di proyek A. Referensi bekerja dengan benar seperti yang diharapkan. Saya kemudian menghapus proyek C dari solusi, hanya memindahkan proyek C ke jalur yang dalam, sama dengan proyek B, dan menambahkan proyek C kembali ke solusi, dan mencoba mengkompilasi. Saya kemudian tidak memiliki visibilitas untuk memproyeksikan objek C lagi.
sumber
Dalam kasus saya, saya telah menyalin perpustakaan kelas, dan tidak mengubah "Nama Majelis" di properti proyek, jadi satu DLL menimpa yang lain ...
sumber
Ini terjadi pada saya di Visual Studio 2019. Bagi saya, saya mencoba untuk referensi proyek lain dalam solusi saya. Berikut langkah-langkah yang saya ambil seandainya itu membantu orang lain:
Saya bingung karena saya masih mendapatkan kesalahan setelah langkah 1 dan 2, tetapi membangun proyek sepertinya menyelesaikannya.
sumber
Saya menghadapi masalah yang sama dengan namespace / metode yang tidak ditemukan selama eksekusi meskipun baik-baik saja selama kompilasi, dan alasan untuk ini tampaknya karena rakitan yang saya rujuk digunakan untuk GAC dan sejak itu diubah, jadi ketika saya mereferensikan rakitan dalam Visual Studion itu menggunakan yang terbaru, tetapi selama runtime versi dari GAC telah digunakan.
sumber
Dalam kasus saya, saya mendapatkan kesalahan hanya di VS 2015. Ketika membuka proyek di VS 2017 kesalahan itu hilang.
sumber
Gila. Aku tahu.
Sudah mencoba semua opsi di sini. Mulai ulang, bersihkan, periksa secara manual di DLL yang dihasilkan (ini sangat berharga untuk dipahami jika sebenarnya Anda sendiri yang mengacaukannya).
Saya mulai bekerja dengan mengatur Verbosity dari MSBuild ke "Detail" di Options.
sumber
Pertanyaan ini sudah dijawab untuk poster aslinya, tetapi jika seseorang menemukan ini dalam proyek MS-Test:
dari dalam Visual Studio, klik menu Uji -> Pengaturan Tes -> Arsitektur Prosesor Default dan pastikan bahwa arsitektur cocok dengan yang dari rakitan lain yang Anda rujuk. Jika unit lain x64 dan pengaturan tes Anda x86, Anda mungkin mengalami gejala yang dimiliki oleh poster asli.
sumber
Saya sedang mengerjakan proyek Xamarin dan seperti biasa, menghapus folder obj dan membangun kembali menyelesaikan masalah saya, namespace VS saya tidak mengenali adalah kode dalam proyek saya sendiri BTW
sumber
Dalam kasus saya menghapus / menambahkan perakitan yang berfungsi.
sumber
Saya pernah mengalami masalah serupa, yang butuh sedikit untuk memecahkan masalah, jadi saya pikir untuk membagikannya:
Namespace yang tidak dapat diselesaikan dalam kasus saya adalah Company.Project.Common.Models.EF . Saya telah menambahkan file di namespace Company.Project.BusinessLogic.Common baru .
Sebagian besar file memiliki
Dan kemudian merujuk model sebagai Common.Models.EF . Semua file itu juga punya
Gagal karena VS tidak dapat menentukan namespace yang akan digunakan.
Solusinya adalah mengubah namespace kedua menjadi Company.Project.BusinessLogic.CommonServices
sumber
Restart Visual Studio 2019 - itu berhasil.
sumber