Saya bekerja di Proyek Web di Visual Studio 2008. Ketika saya menekan F12 (atau klik kanan dan pilih Go To Definition) Visual Studio secara konsisten pergi ke file Metadata bukannya pergi ke sumber.
Beberapa Poin:
- Semua kode sumbernya adalah C #, tidak ada VB.Net
- Semua proyek berada dalam solusi yang sama
- Semuanya adalah referensi proyek yang bertentangan dengan referensi file (dicentang dan diperiksa ulang)
- Saya telah mencoba pendekatan Clean / Rebuild Solution (bahkan sampai membersihkan direktori Temp, direktori Temporary ASP.NET Files, dll).
Adakah orang lain yang melihat perilaku ini dan / atau tahu cara memperbaikinya?
visual-studio
pfunk
sumber
sumber
Jawaban:
Nah, pengembang lain menemukan jawabannya. Proyek khusus yang kami miliki masalah awalnya ditambahkan sebagai referensi file, kemudian dihapus dan ditambahkan sebagai Referensi Proyek. Namun Visual Studio, menyimpan keduanya dalam file csproj untuk situs web, menyebabkan masalah. Dia masuk dan secara manual mengedit file csproj untuk menghapus referensi file ke proyek masalah dan semua sudah diperbaiki sekarang
sumber
Ini terjadi ketika Anda tidak menambahkan referensi sebagai proyek tetapi arahkan ke dll atau exe menggunakan tab Browse di dialog Add Reference. Jika Anda menambahkan referensi menggunakan tab Projects Anda harus langsung pergi ke kode sumber ketika Anda memilih Go To Definition.
Namun, jika Anda menginstal ReSharper , Anda akan pergi ke kode sumber bahkan jika Anda menambahkan referensi Anda ke dll / exe menggunakan tab Browse.
sumber
Sepertinya perlu diatur di Resharper juga. Studio Visual saya tidak menavigasi ke kode sumber .NET Framework sampai saya mengaktifkannya di Resharper.
sumber
1. tutup solusi Anda.
2. hapus
<name of the solution>
file .suo tersembunyi di folder tempat file .sln solusi Anda<name of the solution>
ada.3. buka solusi Anda.
4. membangun kembali solusi Anda.
sumber
Bagi yang menggunakan VS 2017 (saya di versi 15.3.4 saat ini) di sini adalah langkah-langkah sederhana:
.vs\[your solution name]\v15
.suo
fileItu memperbaikinya bagi saya: F12 membuka file sumber yang sebenarnya, bukan versi "from metadata".
sumber
Visual studio sering menderita masalah pergi ke metadata daripada proyek Anda jika Anda menggeser lokasi di mana Anda membangun proyek, yaitu Anda mungkin memiliki beberapa versi untuk menguji berbagai hal.
Cukup hapus referensi dan segera tambahkan kembali dan semuanya akan beres.
sumber
Solusi yang ditandai tidak selalu berhasil. Anda harus memastikan bahwa GUID proyek yang direferensikan dalam file proyek adalah GUID yang benar untuk proyek yang Anda coba referensi. Visual Studio memang memungkinkan mereka untuk keluar dari sinkronisasi dalam beberapa keadaan. Anda bisa mendapatkan GUID proyek dari file proyek dengan editor teks. Jadi jika proyek A proyek referensi B. Buka proyek B.csproj dalam editor teks, salin GUID proyek dari tag. Kemudian buka proyek A.csproj di editor teks, dan pastikan Anda menggunakan GUID yang benar. Cari nama proyek "B" dalam kasus ini. Itu harus di. Ganti GUID dalam tag dengan yang benar. Simpan dan muat ulang. Tentu saja juga pastikan referensi berbasis file untuk proyek Anda dihapus. Anda hanya ingin referensi proyek.
sumber
Saya telah membunuh semua instance VS, menghapus SUO, meluncurkan sln dan itu berhasil untuk saya ...
sumber
Hapus dll referensi, Bangun (akan mendapatkan kesalahan), TAMBAHKAN referensi (Anda dihapus) kemudian bangun lagi ... F12 pada fungsi Anda kemudian harus bekerja (bekerja untuk saya).
sumber
Saya menemukan cara untuk menyelesaikan masalah saya dari posting ini , mungkin itu juga akan berhasil untuk sebagian dari Anda.
Saya mengikuti langkah-langkah ini:
(Saya percaya langkah 3 atau 4 meregenerasi file database Intellisense ketika hilang)
Intellisense, "buka definisi" dan "temukan semua referensi" harus berfungsi lagi.
sumber
Dalam kasus saya, (menggunakan Visual Studio Professional 2015), ketika saya telah menonaktifkan desainer XAML, F12 berhenti bekerja. Segera setelah saya mengembalikan perubahan, dan me-restart Visual Studio, F12 bekerja lagi.
Memeriksa pola beberapa kali untuk mengonfirmasi dan kemudian memposting. Semoga ini bisa membantu seseorang.
sumber
Gejala:
Visual Studio 2010 Ultimate berulang kali gagal menemukan referensi ke fungsi, #defines, termasuk, dll ketika menggunakan fitur "Go To Definition" atau "Go To Declaration" atau "Find All Reference" - anehnya Intellisense bekerja.
Memperbaiki:
File .sdf akan secara otomatis dibangun kembali dengan mem-parsing file yang disertakan dalam solusi Anda
sumber
Bagi saya, solusi GUID tidak berfungsi dan saya tidak dapat menemukan file .ncb saya. (Atau mungkin saya malas dan tidak terlihat cukup keras, tapi itu tidak penting.) Membangun kembali dan memulai kembali studio visual juga tidak membantu.
Apa yang saya lakukan adalah menutup visual studio dan menghapus .dll dan .pdb yang direferensikan di bagian atas file Meta Data yang terus terhubung dengan intellisense saya. Dalam kasus saya itu berarti saya menghapus .dll dan .pdb file dari Utilities / bin / Release. (Utilitas adalah nama proyek .dll yang bermasalah dengan saya.) Kemudian saya memulai kembali studio visual dan membangun kembali .dll lalu seluruh solusi. Tidak ada lagi masalah!
sumber
Baru saja menemukan penyebab lain. Saya memutakhirkan proyek web saya ke 4.0 tetapi meninggalkan perpustakaan kelas pada 2.0. Pada titik itu semua perpustakaan kelas dalam solusi saya diperlakukan sebagai referensi file dari proyek web saya. Mungkin bisa membantu orang lain ...
sumber
Saya menghadapi masalah yang sama dan salah satu kolega memberi saya solusi berikut dan berhasil! Jika tidak ada di atas yang bekerja untuk Anda,
sumber
Saya melakukan semua langkah yang disarankan tetapi tidak ada yang berubah kemudian
akhirnya klik kanan dan tambahkan menu referensi, tab proyek
Masalah diurutkan. Semoga ini bisa membantu seseorang.
sumber
Langkah-langkah di bawah ini berhasil untuk saya.
<Reference Include="">
Hapus garis
sumber
Setelah menghapus file dll dari Visual Studio terlebih dahulu dan menambahkannya kembali secara manual dari Solution Explorer -> Situs Web -> Tambah -> Referensi dan mengaktifkan Aplikasi 32-bit di IIS memperbaikinya untuk saya.
sumber
# 1
Periksa "Lihat - Obyek Browser" dan jika Anda melihat lebih dari satu unit dengan nama yang sama - itulah sebabnya Anda mendapatkan kesalahan ini.
Bagi kami itu adalah bug di VS 2019:
Jika Anda memiliki ASP.NET "Razor helpers" di
App_Code
folder, Visual Studio 2019 menafsirkannya sebagai rakitan yang berbeda tetapi dengan nama yang sama, yang menyembunyikan rakitan yang sebenarnya.Tidak ada perbaikan untuk itu selain menulis ulang bantuan tersebut ke tampilan sebagian atau HTML pembantu (Anda harus tetap melakukannya jika Anda berencana untuk bermigrasi ke .NET Core).
Lihat pemecahan masalah ini di situs MS dan harap perbaiki bug di sana sehingga MS memperbaikinya
https://developercommunity.visualstudio.com/solutions/1008795/view.html (harap upvote)
# 2
Alasan lain mengapa perakitan yang sama dapat dimuat dua kali dalam browser objek adalah jika Anda memiliki proyek unit-test yang memulai proses iis-express dan tidak pernah membunuhnya dengan benar.
sumber
sumber
Dalam kasus saya, saya baru saja berubah
menjadi "true" di file .csproj situs saya (untuk menemukan kesalahan kompilasi dalam file tampilan Razor saya: http://forums.asp.net/t/1909113.aspx?How+to+have+Visual+Studio+2012+returned + kompilasi + kesalahan + pada + silet + sintaks + kesalahan + di + asp + net + web + halaman + 2 + ), dan ketika saya membangun saya mendapatkan kesalahan dari direktori direktori / obj / Debug / situs saya. Dari semua file itu (yang kedaluwarsa), mengklik kanan dan memilih "Go To Definition" akan memberi saya versi [metadata].
Jadi bagi saya, tidak ada solusi di sini yang berfungsi, karena saya tidak memulai dari file yang sebenarnya ada di proyek saya. Dihapus seluruh direktori / obj / Debug /, kesalahan hilang, dan dari file normal saya dapat menggunakan Go To Definition dengan benar.
sumber
Saya baru saja mengalami masalah ini pada VS 2013. Sesuatu yang saya (tidak bisa) isolasi tidak mengubah GUID dalam file CSPROJ. Karena file CSPROJ diperiksa ke dalam SVN, saya tidak bisa begitu saja mengubah GUID pada dev lokal saya. Sebaliknya, saya terus-menerus SVN mengembalikan perubahan lokal setiap kali itu terjadi.
Pertama, saya harus menyelesaikan masalah GUID yang berubah.
Ekstrak nilai dari file CSPROJ yang masih asli.
{B1234567-5123-4AAE-FE43-8465767788ED}
Buka file SLN melalui editor teks, BUKAN VS.
Temukan referensi Proyek dalam solusi.
Project ("{FAE12345-3210-1357-B3EB-00CA4F396F7C}") = "Some.Project", ".... \ assemblies \ Some.Project \ Some.Project.csproj", "{B7654321-5321-4AAE- FE3D-ED20900088ED} "EndProject
GUID pertama yang terdaftar adalah GUID Solusi. Untuk setiap proyek yang dirujuk dalam SLN Anda, Anda harus melihat nilai ini diulang pada argumen pertama. GUID yang mengikuti .csproj adalah yang ingin Anda ganti dengan GUID yang asli.
Ini harus menyelesaikan masalah pertama, tetapi pendaratan "Masuk ke Definisi" dalam data meta tidak terpecahkan. Dalam file SLN kami, ada proyek master (situs web kami), jadi entri dalam file SLN harus berisi entri ProjectSection dengan beberapa nilai GUID. Berikut ini sebuah contoh:
Perhatikan bahwa GUID yang hilang dalam koleksi ini adalah dari proyek awal saya.
sumber
Saya memiliki referensi melingkar antara dua proyek yang terlibat (yang merupakan no-no). Harus merestrukturisasi kode saya sedikit untuk menyelesaikannya karena kedua proyek benar-benar saling bergantung. Menghapus salah satu referensi memecahkan masalah intellisense. Secara logika cacat dan saya mungkin tidak akan menyadarinya tanpa kesalahan ini!
sumber
Yang ini bekerja untuk saya:
sumber
Ini dapat terjadi jika Anda mencoba untuk melompat ke definisi dalam proyek yang telah dibongkar (Tidak tersedia). Klik kanan proyek yang dibongkar dan pilih "Muat Ulang Proyek".
sumber
Tebakan terbaik adalah Anda tidak memiliki informasi debug. Mungkin Anda memiliki banyak salinan rakitan di disk dan tidak memiliki file .pdb.
Lakukan pencarian untuk nama-nama majelis Anda dari proyek Anda dan hapus semuanya dan bangun kembali.
sumber