File metadata… tidak ditemukan kesalahan saat membangun proyek


98

Setiap kali saya memulai Visual Studio 2008, pertama kali saya mencoba menjalankan proyek saya mendapatkan kesalahan CS0006 File metadata ... tidak dapat ditemukan. Jika saya membangun kembali solusi lengkap, itu berfungsi.

Beberapa informasi tentang solusinya:

  • Saya sedang membangun dalam mode debug dan Visual Studio mengeluh tentang tidak menemukan dll: s di folder rilis.

  • Proyek yang dikeluhkan oleh Visual Studio digunakan oleh banyak proyek lain dalam solusi.

  • Saya telah mengubah jalur keluaran default dari semua proyek menjadi ...... \ build \ debug \ ProjectName dan ...... \ build \ release \ ProjectName. (Hanya untuk mendapatkan semua file build dalam satu direktori)

  • Saya memiliki masalah yang sama dengan solusi lain.

  • Solusinya dibuat dari awal.

  • Ada 9 proyek dalam solusinya. Satu pustaka kelas WPF dan 8 menggunakan dotnet 3.5.

Adakah ide tentang apa yang menyebabkan masalah ini?


Jawaban:


133

Saya memiliki masalah serupa di mana "metadata tidak dapat ditemukan". pada properti solusi, pastikan bahwa kotak centang "build" ditandai di Build / Configuration Manager untuk setiap proyek.


16
Bagi siapa pun yang tidak dapat menemukannya, Build / Configuration Manager merujuk ke menu Build -> item menu Configuration Manager.
John Kurlak

4
Saya baru saja mengalami masalah ini, alasannya adalah kesalahan lain yang menyebabkan proyek yang dirujuk tidak berhasil dibangun. Ini adalah pembayaran yang bersih, jadi tidak ada file dll dari sebelumnya yang berhasil dibangun. Perbaiki error dan pastikan project referensi dibuat dengan benar.
Moulde

9
Kadang-kadang bahkan ini tidak membantu, seperti yang dicatat oleh Nick di atas. Dalam hal ini, menutup dan memulai ulang VS selalu berhasil untuk saya. YMMV.
philofinfinitejest

3
Tidak menyelesaikan masalah. Saya memulai ulang VS dan tidak menyelesaikan masalah.
Shimmy Weitzhandler

26

Ini biasanya disebabkan oleh proyek yang direferensikan dalam solusi yang berbeda dari yang menghasilkan kesalahan. Jika Anda membersihkan solusi lain, atau mencabangkan kodenya, kemungkinan besar Anda akan melihat kesalahan ini. Solusinya adalah dengan menggulir daftar kesalahan "metadata tidak ditemukan", dan melihat referensi ke proyek. 9/10 kali, Anda akan melihat referensi rusak ke proyek yang tidak ada dalam solusi ini. Tambahkan proyek untuk memperbaiki kesalahan referensi, dan membangun kembali. Itu harus memperbaikinya.

(Saya baru saja mengalami ini hari ini, dan pernah melakukannya di masa lalu, dan ini SELALU berhasil)


Hanya proyek yang ada dalam solusi saya yang mengeluh.
The Muffin Man

7

Saya mengalami masalah ini, tidak yakin apakah itu akan membantu tetapi masalah saya disebabkan oleh dua versi berbeda dari proyek yang sama yang direferensikan oleh dua solusi berbeda. Ketika saya membangun solusi dengan referensi ke proyek yang benar pertama solusi kedua akan baik-baik saja, namun, jika saya membersihkan solusi pertama dan mencoba membangun solusi kedua itu akan gagal dengan pesan kesalahan referensi dll ini.

Solusi bagi saya adalah mencari tahu bahwa saya memiliki dua proyek dengan nama yang sama yang telah diduplikasi secara tidak sengaja dan menghapus referensi ke proyek lama yang salah dan menambahkan referensi ke yang baru.

Bagaimanapun, tampaknya pesan-pesan ini sedikit mengganggu, saya akan memeriksa keluaran build Anda dan menemukan proyek pertama yang gagal untuk dibangun dan dengan sangat hati-hati memeriksa referensi tentang proyek itu.


1
+1 untuk catatan tentang ketidakakuratan pesan-pesan ini. Ini terpotong untuk saya karena jalur ke majelis yang direferensikan dalam solusi diputus. Membacanya dan menyusun ulang memecahkan masalah.
E.Rodriguez

6

Hal lain yang perlu diverifikasi adalah panjang jalur ... yang juga menyebabkan File Metadata tidak ditemukan dan kesalahan kompilasi ... Saya baru saja mengganti nama folder saya menjadi jalur dan voilá yang lebih pendek, kelas yang tidak dikenali dan tetap hitam, menjadi biru hanya dengan mengganti nama foldernya.


5

Bagi saya, saya memiliki proyek yang dirujuk dalam proyek lain. Itu tidak menunjukkan itu rusak dalam daftar referensi di jendela explorer solusi tetapi saya tetap menghapus dan membacanya. Itu dibangun dengan baik sekarang!


Memang, saya menghapus semua referensi dan menambahkannya lagi.

3

Saya menjalani semua langkah ini di VS2012, tetapi saya terus mengalami masalah ini ketika membangun solusi secara keseluruhan (proyek individu dibangun dengan baik tanpa kesalahan).

Saya menemukan bahwa jika Anda mengklik kanan Solusi Anda di Solution Explorer dan memilih "Build Order", Anda dapat melihat urutan yang digunakan VS untuk membangun kembali solusi Anda. Sepertinya rusak.

Anda dapat memperbaiki urutan build dengan mengklik tab Dependencies dan memilih project yang bergantung pada project lain dalam solusi dan memeriksa project tempat mereka bergantung. Setelah Anda mencapai oke dan melakukan rekondisi solusi, Anda harus melakukannya.


2

Cara saya mendapat putaran ini di masa lalu di VS2005 serta sekarang di VS2008 adalah untuk memastikan semua ketergantungan sudah benar dan referensi menunjuk ke proyek bukan dll. Kemudian melalui dan secara manual buat setiap proyek dalam urutan ketergantungan. Setelah yang terakhir dibangun, Anda dapat menjalankan solusi lengkap dan tidak masalah.

Jawaban ini untuk referensi di masa mendatang karena saya tahu pertanyaannya sudah lebih dari 15 bulan.

Bersulang


2

Saya memiliki beberapa poin yang ingin saya sampaikan.

Jika Anda mengandalkan file solusi sebagai file build Anda di bawah MSBuild, pastikan bahwa Anda menambahkan proyek ke file solusi dalam urutan yang Anda inginkan untuk dibuat, yaitu berdasarkan urutan ketergantungan proyek. Ini menjadi sangat penting jika Anda memiliki proyek dalam solusi yang bergantung pada proyek lain, tetapi referensi telah ditambahkan sebagai "Referensi" daripada "Referensi Proyek".

Anda harus menghindari itu seperti wabah, tetapi jika Anda memang perlu melakukan itu, maka setidaknya pastikan proyek yang bergantung muncul lebih awal di file solusi.

Anda harus ingat bahwa cara Visual Studio menghasilkan urutan pembuatan tidak persis sama dengan cara MSBuild melakukannya. Ini karena MSBuild terutama bergantung pada file proyek untuk memberi tahu apa dependensinya, sedangkan Visual Studio juga dapat menyimpannya di file soltuion. Oleh karena itu, terkadang Anda dapat melihat situasi di mana Visual Studio membangun solusi dengan sempurna, tetapi MSBuild tidak dapat melakukannya.

Saya memiliki beberapa contoh di mana saya harus mengubah urutan di mana proyek muncul di file solusi serta urutan proyek yang terdaftar di elemen ProjectReferences di proyek Situs Web di file solusi.

Saya harap informasi di atas membantu.


2

Jika Anda menggunakan konteks Data LinqtoSQL, misalnya, dan file .designer.cs hilang, Anda akan mendapatkan error file Metadata tidak dapat ditemukan.

Membuat ulang file designer.cs itu mudah.

Buka dbml menggunakan tampilan xml. Tambahkan baris kosong, lalu hapus, lalu simpan. Itu harus membuat ulang file designer.cs Anda.

Dalam beberapa keadaan, jika Anda memiliki kode di dalam kode di belakang konteks data Anda, penyelesaian ini tidak akan berfungsi. Dalam hal ini, keluarkan kode dari kode di belakang dan letakkan di notepad atau sesuatu. Lakukan trik menambahkan kemudian menghapus garis dari DC dan simpan. Sekarang kembalikan kode dan simpan.


2

Saya memiliki masalah serupa setiap kali saya memperbarui proyek dari SVN.
Solusi lain untuk ASP.NET:

  1. Tutup IDE.
  2. Hapus file di C:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\.

1

Saya juga mengalami kesalahan ini dan penyebabnya adalah Project merujuk ke dirinya sendiri. Saya tidak tahu bagaimana itu terjadi tetapi saya baru saja menghapus referensi dan voila


1

Pertama, pastikan bahwa kotak centang "build" ditandai di Build -> Pengelola Konfigurasi untuk setiap proyek.

Dalam kasus, jika Anda sudah memiliki semua proyek yang dipilih di bawah Build -> menu Pengelola Konfigurasi, dan memulai kembali trik VS tidak berhasil untuk Anda daripada Anda harus menemukan referensi file (bisa jadi dll atau cs) di proyek Anda dan hapus referensi tersebut secara manual. File / referensi tersebut harus ditampilkan dengan ikon kuning. Kesalahan pasti memandu Anda proyek solusi mana yang harus Anda perhatikan.

Alasan kesalahan ini adalah karena Anda telah menghapus file secara manual di windows explorer dan VS belum memperbarui referensi dan mencoba menemukan file yang tidak ada lagi!


1

Dalam kasus saya, saya menemukan bahwa salah satu solusi saya merujuk pada sesuatu yang tidak ada di komputer (VBIDE). Setelah saya menghapus referensi yang menyinggung, sisa proyek dibangun dengan benar. Harapan yang membantu seseorang.

Dan dalam situasi lain, saya memindahkan beberapa kode dari satu proyek ke proyek lain, dan potongan kode itu merujuk ke Json.net. Saya secara manual menambahkan referensi ke Json.net tetapi itu membuat masalah muncul. Saya menyelesaikannya dengan menginstal Json.net melalui NuGet dan itu membuat masalah hilang. Harapan yang membantu seseorang.


0

Hal yang sama terjadi. Saya memiliki beberapa solusi yang mereferensikan proyek perpustakaan yang sama (.net 3.5). Saya perhatikan ketika satu dibangun di debug / konfigurasi normal, dan yang lain menggunakan beberapa direktif kompiler lain (mode sqlite / lokal), ini akan terjadi. Cukup dapatkan kedua proyek yang dibangun dengan arahan yang sama dan Anda akan baik-baik saja.


0

Jika Anda telah menambahkan proyek baru ke solusi, periksa apakah ini ada dalam daftar build (lihat Pengelola Konfigurasi)


0

Saya terjebak dengan masalah penyimpanan ketika saya ingin menyertakan file dll yang dihasilkan oleh Matlab. Dan saya akhirnya menyelesaikannya dengan menyalin file .ctf, yang berarti sertifikat yang saya kira, dan .netmodule, yang diperlukan untuk pengoperasian yang benar dari .dll, bersama dengan file .dll. Dan itu benar-benar berhasil! Jadi, saran saya adalah untuk memeriksa apakah .dll membutuhkan file lain untuk digunakan.


0

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

Saya menerima kesalahan yang sama. Dan saya memutuskan untuk menghapus dan menambahkan kembali referensi proyek. Saya tidak dapat menambahkannya kembali karena referensi Database di setiap proyek yang direferensikan kosong.

Setelah saya mengatur ulang referensi database ke pengaturan yang benar, saya dapat membangun tanpa masalah lebih lanjut. Selain itu, ini adalah upaya pertama saya untuk membangun kembali proyek ini setelah kode sumber bercabang di VSS.

Semoga berhasil


0

Saya mengalami kesalahan ini, itu disebabkan oleh salah satu ketergantungan proyek saya di mana nama assembly telah diubah dalam proyek, tetapi referensi tidak diperbarui. Jadi memperbarui referensi atau mengganti nama rakitan kembali akan memperbaikinya.


0

EE - Dalam kasus saya masalahnya ada di proyek yang memiliki kerangka Entitas, buka diagram seret tabel apa saja 2 cm :) dan simpan, VS akan memperbarui semua tautannya ke DB ... membangun proyek ini dan membangun solusinya , Buildssss.


0

Satu-satunya hal yang memperbaiki saya (karena saya tidak menjalankan VS2010 pada akun administrator) adalah memindahkan variabel lingkungan VS120COMNTOOLS secara manual dari Variabel Sistem ke Variabel Pengguna.


0

Menghapus entri dari semua file sumber yang tidak lagi ada di kontrol sumber dan sistem file dari file .csproj Anda berhasil untuk saya.


Pendekatan rinci:

Nah, jawaban saya berikut ini bukan hanya ringkasan dari semua solusi, tetapi menawarkan lebih dari itu.

Bagian 1):

Dalam solusi umum:

Saya mengalami 4 kesalahan semacam ini ('file metadata tidak dapat ditemukan') bersama dengan 1 kesalahan yang mengatakan 'File Sumber Tidak Dapat Dibuka (' Kesalahan tidak ditentukan ')'.

Saya mencoba menyingkirkan kesalahan 'file metadata tidak dapat ditemukan'. Untuk itu, saya membaca banyak posting, blog, dll dan menemukan solusi ini mungkin efektif (meringkasnya di sini):

  1. Mulai ulang VS dan coba buat lagi.

  2. Buka 'Solution Explorer' . Klik kanan pada Solution. Pergi ke Properties . Buka 'Pengelola Konfigurasi' . Periksa apakah kotak centang di bawah 'Bangun' dicentang atau tidak. Jika salah satu atau semuanya tidak dicentang, periksa dan coba buat lagi.

  3. Jika solusi di atas tidak berfungsi, ikuti urutan yang disebutkan pada langkah 2 di atas, dan bahkan jika semua kotak centang dicentang, hapus centang, centang lagi, dan coba buat lagi.

  4. Urutan Bangun dan Ketergantungan Proyek:

    Buka 'Solution Explorer' . Klik kanan pada Solution. Buka 'Ketergantungan Proyek ...' . Anda akan melihat 2 tab: 'Dependencies' dan 'Build Order' . Urutan build ini adalah tempat solusi dibangun. Periksa dependensi proyek dan urutan build untuk memverifikasi apakah beberapa proyek (katakanlah 'project1') yang bergantung pada yang lain (katakanlah 'project2') mencoba untuk membangun sebelum yang satu itu (project2). Ini mungkin penyebab kesalahan.

  5. Periksa jalur .dll yang hilang:

    Periksa jalur .dll yang hilang. Jika jalur berisi spasi atau karakter jalur tidak valid lainnya, hapus dan coba buat lagi.

    Jika ini penyebabnya, maka sesuaikan urutan build.


Seksi 2):

Kasus khusus saya:

Saya mencoba semua langkah di atas dengan berbagai permutasi dan kombinasi dengan restart VS beberapa kali. Tapi, itu tidak membantu saya.

Jadi, saya memutuskan untuk menyingkirkan kesalahan lain yang saya temukan ('File Sumber Tidak Bisa Dibuka (' Kesalahan Tidak Disebutkan ')').

Saya menemukan sebuah blog: http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

Saya mencoba langkah-langkah yang disebutkan di blog itu dan saya menyingkirkan kesalahan 'File Sumber Tidak Dapat Dibuka (' Kesalahan Tidak Disebutkan ')' dan yang mengejutkan saya juga menyingkirkan kesalahan lain ('file metadata tidak dapat ditemukan') .


Bagian (3):

Pesan moral dalam cerita:

Coba semua solusi seperti yang disebutkan di bagian (1) di atas (dan solusi lainnya) untuk menghilangkan kesalahan. Jika tidak ada yang berhasil, sesuai dengan blog yang disebutkan pada bagian (2) di atas, hapus entri dari semua file sumber yang tidak lagi ada dalam kontrol sumber dan sistem file dari file .csproj Anda .


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.