Saya sedang mengerjakan proyek WPF, C # 3.0, dan saya mendapatkan kesalahan ini:
Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem
Ini adalah bagaimana saya merujuk kontrol pengguna saya:
xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>
Itu terjadi setelah setiap bangunan gagal. Satu-satunya cara saya bisa mendapatkan solusi untuk mengkompilasi adalah dengan mengomentari semua kontrol pengguna saya dan membangun kembali proyek, dan kemudian saya batalkan komentar pada kontrol pengguna dan semuanya baik-baik saja.
Saya telah memeriksa konfigurasi pesanan dan dependensi.
Seperti yang Anda lihat, tampaknya telah memotong jalur absolut file DLL ... Saya telah membaca bahwa ada bug dengan panjangnya. Apakah ini masalah yang mungkin terjadi?
Sangat menjengkelkan dan harus berkomentar, membangun, dan menghapus komentar, versi ini menjadi sangat melelahkan.
Jawaban:
Saya hanya punya masalah yang sama. Visual Studio tidak membangun proyek yang dirujuk.
Instruksi Tertulis:
Petunjuk tangkapan layar:
sumber
Ini masih dapat terjadi di versi Visual Studio yang lebih baru (Saya baru saja melakukannya di Visual Studio 2013):
Hal lain yang harus dicoba adalah menutup Visual Studio dan menghapus
.suo
file yang ada di sebelah.sln
file. (Ini akan dihasilkan kembali saat Anda berikutnyaSave all
(atau keluar dari Visual Studio)).Saya mengalami masalah ini ketika menambahkan proyek baru ke solusi di komputer lain dan kemudian menarik revisi, tetapi
.suo
file tersebut dapat rusak dalam kasus lain juga dan menyebabkan perilaku Visual Studio yang sangat aneh, sehingga menghapusnya adalah salah satu hal yang selalu saya coba.Perhatikan bahwa menghapus
.suo
file akan mengatur ulang proyek startup dari solusi.Lebih lanjut tentang
.suo
file ada di sini .sumber
.suo
file disembunyikan. Jadi, Anda harus menyiapkan penjelajah untuk menampilkan file tersembunyi..suo
file tersebut tersembunyi dan duduk di dalam.vs
direktori tersembunyi di samping.sln
. misalnya: jika file solusic:\foo\mysolution.sln
kemudian caric:\foo\mysolution\.vs\mysolution\v14\.suo
.vs
folder yang disembunyikan yang juga menghapus.suo
file. Saya membuka kembali solusinya, memperbaiki satu kesalahan lagi yang tidak terkait, dan masalah ini diselesaikan.Jawaban yang disarankan tidak berhasil untuk saya. Kesalahan adalah umpan untuk masalah lain.
Saya mengetahui bahwa saya menargetkan versi .NET yang sedikit berbeda dan ini ditandai sebagai peringatan oleh kompiler, tetapi itu menyebabkan bangunan gagal. Ini seharusnya ditandai sebagai kesalahan dan bukan peringatan.
sumber
Yah, jawaban saya bukan hanya ringkasan dari semua solusi, tetapi menawarkan lebih dari itu.
Bagian 1):
Dalam solusi umum:
Saya memiliki empat kesalahan semacam ini ('file metadata tidak dapat ditemukan') bersama dengan satu kesalahan yang mengatakan 'File Sumber Tidak Dapat Dibuka (' Kesalahan tidak ditentukan ')'.
Saya mencoba untuk menyingkirkan kesalahan 'file metadata tidak dapat ditemukan'. Untuk itu, saya membaca banyak posting, blog, dll dan menemukan solusi ini mungkin efektif (meringkasnya di sini):
Mulai ulang Visual Studio dan coba buat lagi.
Pergi ke 'Solution Explorer' . Klik kanan pada Solution. Pergi ke Properties . Pergi ke 'Pengelola Konfigurasi' . Periksa apakah kotak centang di bawah 'Bangun' dicentang atau tidak. Jika ada atau semuanya tidak dicentang, maka periksa dan coba bangun lagi.
Jika solusi di atas tidak berfungsi, maka ikuti urutan yang disebutkan pada langkah 2 di atas, dan bahkan jika semua kotak centang dicentang, hapus centang, centang lagi dan coba buat lagi.
Bangun Ketertiban dan Ketergantungan Proyek:
Pergi ke 'Solution Explorer' . Klik kanan pada Solution. Pergi ke 'Ketergantungan Proyek ...' . Anda akan melihat dua tab: 'Ketergantungan' dan 'Bangun Pesanan' . Urutan build ini adalah solusi yang dibangun. Periksa dependensi proyek dan urutan pembangunan untuk memverifikasi jika beberapa proyek (katakan 'project1') yang bergantung pada yang lain (katakan 'project2') sedang mencoba untuk membangun sebelum yang satu itu (project2). Ini mungkin menjadi penyebab kesalahan.
Periksa jalur .dll yang hilang:
Periksa jalur .dll yang hilang. Jika jalur berisi spasi atau karakter jalur yang tidak valid lainnya, hapus dan coba buat lagi.
Jika ini penyebabnya, maka sesuaikan urutan pesanan.
Seksi 2):
Kasus khusus saya:
Saya mencoba semua langkah di atas dengan berbagai permutasi dan kombinasi dengan me-restart Visual Studio beberapa kali. Tapi, itu tidak membantu saya.
Jadi, saya memutuskan untuk menghilangkan kesalahan lain yang saya temui ('File Sumber Tidak Dapat Dibuka (' Kesalahan tidak ditentukan ')').
Saya menemukan posting blog: Kesalahan TFS – File Sumber Tidak Dapat Dibuka ('Kesalahan tidak ditentukan')
Saya mencoba langkah-langkah yang disebutkan dalam posting blog itu, dan saya menghilangkan kesalahan 'File Sumber Tidak Dapat Dibuka (' Kesalahan tidak ditentukan ')' dan mengejutkannya saya menghilangkan kesalahan lain ('file metadata tidak dapat ditemukan') sebagai baik.
Bagian (3):
Pesan moral dalam cerita:
Coba semua solusi seperti yang disebutkan dalam bagian (1) di atas (dan solusi lain) untuk menghilangkan kesalahan. Jika tidak ada yang berhasil, sesuai dengan blog yang disebutkan dalam bagian (2) di atas, hapus entri semua file sumber yang tidak lagi ada dalam kontrol sumber dan sistem file dari file .csproj Anda .
sumber
.NET v4.5
proyek ke.NET v.4
.Dalam kasus saya itu disebabkan oleh ketidakcocokan versi .NET Framework.
Satu proyek adalah 3.5 dan proyek referensi lainnya 4.6.1.
sumber
Menutup dan membuka kembali Visual Studio 2013 berhasil untuk saya!
sumber
Yah, tidak ada dalam jawaban sebelumnya yang berfungsi untuk saya, jadi saya berpikir mengapa saya mengklik dan berharap ketika sebagai pengembang kita harus benar-benar mencoba memahami apa yang sedang terjadi di sini.
Tampak jelas bagi saya bahwa referensi file data meta yang salah ini harus disimpan di suatu tempat.
Pencarian cepat file .csproj menunjukkan baris yang bersalah. Saya memiliki bagian bernama <itemGroup> yang sepertinya tergantung pada file lama yang salah.
Jadi perbaikan sederhana benar-benar:
Harap pastikan Anda melakukan backup .csproj lama Anda sebelum Anda biola .
sumber
Saya juga menemui masalah ini. Pertama, Anda harus secara manual membangun proyek DLL Anda, dengan klik kanan, Build. Maka akan berhasil.
sumber
Metadata file ...proj1.dll could not be found
!Dalam kasus saya, direktori yang saya instal salah.
Jika jalur solusi Anda seperti "Proyek Saya% 2c Sangat Populer% 2c Unit Pengujian% 2c Perangkat Lunak dan Perangkat Keras.zip", itu tidak dapat menyelesaikan file metadata, mungkin kami harus mencegah beberapa kata yang tidak valid seperti% 2c.
Mengganti nama jalur menjadi nama normal telah menyelesaikan masalah saya.
sumber
Saya mendapat kesalahan yang sama "File metadata '.dll' tidak dapat ditemukan", dan saya mencoba beberapa hal yang dijelaskan di atas, tetapi alasan kesalahannya adalah karena saya mereferensikan file DLL pihak ketiga yang menargetkan versi .NET lebih tinggi bahwa target proyek saya. Versi NET. Jadi solusinya adalah mengubah kerangka target proyek saya.
sumber
Visual Studio 2019 ini berfungsi untuk saya:
.vs
folder yangsumber
Bagi saya, itu mencoba menemukan DLL di jalur yang dulu berisi Proyek, tetapi kami memindahkannya ke direktori baru. Solusi memiliki jalur yang benar ke Proyek, tetapi Visual Studio entah bagaimana terus mencari di lokasi yang lama.
Solusi: Ganti nama setiap proyek yang bermasalah - cukup tambahkan karakter atau apa pun - lalu ganti namanya kembali ke nama aslinya.
Ini harus mengatur ulang beberapa jenis cache global di Visual Studio, karena ini menghapus masalah ini dan beberapa suka, sementara hal-hal seperti Bersihkan tidak.
sumber
Saya menambahkan proyek baru ke solusi saya dan mulai mendapatkan ini.
Alasannya? Proyek yang saya bawa menargetkan kerangka .NET yang berbeda (4.6 dan dua lainnya adalah 4.5.2).
sumber
Bagi saya itu terjadi ketika saya memasukkan proyek baru ke solusi.
Visual Studio secara otomatis memilih .NET framework 4.5.
Saya mengubah ke versi .NET 4.5.2 seperti perpustakaan lain, dan itu berhasil.
sumber
Bagi saya langkah-langkah berikut berhasil:
sumber
Saya mencabut rambut saya dengan masalah ini juga, tetapi setelah mencoba jawaban sebelumnya satu-satunya hal yang berhasil bagi saya adalah membuka setiap proyek dalam solusi saya 1 per 1 dan membangunnya secara individual.
Kemudian saya menutup Visual Studio 2013, membuka kembali solusi saya dan itu dikompilasi dengan baik.
Ini aneh, karena jika saya mengklik setiap proyek di Solution Explorer saya dan mencoba membangunnya seperti itu, semuanya gagal. Saya harus membukanya sendiri dalam solusi mereka sendiri.
sumber
Sepertinya jenis kesalahan yang terkait dengan fakta bahwa Visual Studio tidak memberikan informasi yang benar tentang kesalahan. Pengembang bahkan tidak mengerti alasan pembangunan yang gagal. Ini bisa menjadi kesalahan sintaks atau sesuatu yang lain. Secara umum, untuk menyelesaikan masalah seperti itu Anda harus menemukan akar masalah (misalnya, lihat build log).
Dalam kasus saya masalahnya sebenarnya adalah bahwa
Error List
jendela tidak menunjukkan kesalahan. Tapi sebenarnya ada kesalahan sintaksis; Saya menemukan kesalahan ini diOutput
jendela, dan setelah memperbaikinya, masalahnya terpecahkan.sumber
Contoh masalah saya disebabkan oleh proyek umum yang memiliki nama kelas rangkap di dalamnya (dengan nama file yang berbeda). Sungguh aneh bahwa Visual Studio tidak dapat mendeteksi itu dan malah hanya meledakkan proses pembuatan.
sumber
Saya mendapatkan masalah ini di Visual Studio 2012 dalam solusi yang memiliki banyak proyek. Membangun kembali setiap proyek dalam solusi secara manual dalam urutan yang sama dengan Pesanan Bangun Proyek (klik kanan dan bangun kembali di Solution Explorer) memperbaikinya untuk saya.
Akhirnya saya mendapatkan satu yang memberi saya kesalahan kompilasi. Saya memperbaiki kesalahan, dan solusi akan membangun dengan benar setelah itu.
sumber
Dalam kasus saya masalahnya adalah bahwa saya secara manual menghapus file non-kompilasi yang ditandai sebagai "hilang". Setelah saya menghapus referensi ke file yang sekarang hilang dan dikompilasi ulang - semuanya baik-baik saja.
sumber
Jika Anda memiliki ruang dalam nama solusi Anda, ini juga akan menyebabkan masalah. Menghapus spasi dari nama solusi Anda, jadi path yang tidak mengandung% 20 akan menyelesaikan ini.
sumber
Kembali ke ini beberapa tahun kemudian, masalah ini lebih dari mungkin terkait dengan batas jalur maksimum Windows:
Penamaan File, Paths, dan Namespaces , Batasan Panjang Path Maksimal
sumber
Dalam kasus saya, masalahnya disebabkan oleh kesalahan build sederhana,
itu, untuk alasan apa pun, tidak muncul di jendela kesalahan.
Karena itu, sistem build Visual Studio tampaknya melewatkan kesalahan dan mencoba untuk membangun proyek yang bergantung, yang pada gilirannya gagal dengan pesan metadata yang mengganggu.
Rekomendasi ini - sebodoh kedengarannya-:
Pertama-tama lihat pada Output Window Anda !
Butuh setengah jam sebelum ide ini mengenai saya ...
sumber
Saya juga memiliki kesalahan yang sama. Itu bersembunyi seperti di jalur di bawah ini. Jalur yang saya sebut untuk file DLL adalah seperti "D: \ Assemblies Folder \ Assembly1.dll".
Tetapi jalur asli tempat majelis dimaksud adalah "D: \ Assemblies% 20Folder \ Assembly1.dll".
Karena variasi nama jalur ini, majelis tidak dapat diambil dari jalur aslinya dan karenanya melempar kesalahan "Metadata tidak ditemukan".
Solusinya ada di pertanyaan Stack Overflow Bagaimana cara mengganti semua spasi dengan% 20 di C #? .
sumber
Saya menghadapi masalah yang sama. Dalam kasus saya, saya merujuk ke proyek perpustakaan kelas dengan versi .Net lebih tinggi daripada proyek saya dan VS gagal membangun proyek dan mengangkat kesalahan yang sama yang Anda posting.
Saya cukup mengatur. Net versi proyek perpustakaan kelas saya (salah satu yang telah rusak membangun) identik dengan. Bersih versi proyek referensi dan masalah diselesaikan.
sumber
Hanya dengan menunjukkan yang jelas-jelas jelas: jika Anda tidak mengaktifkan "Tampilkan jendela keluaran saat mulai dijalankan", pastikan Anda memperhatikan jika bangunan Anda gagal (kesalahan "build gagal" kecil di kiri bawah) !!!!
sumber
Saya memiliki kesalahan ini ketika saya mencoba untuk menerbitkan aplikasi web. Ternyata salah satu properti kelas dibungkus
tetapi penggunaan properti tidak. Penerbitan dilakukan dalam konfigurasi Release tanpa
DEBUG
simbol, jelas.sumber
Berdasarkan pesan kesalahan saya tidak percaya jalur file sedang terpotong. Tampaknya hanya salah. Jika saya membaca pesan dengan benar tampaknya mencari file DLL di ...
Ini bukan jalur yang valid. Apakah mungkin Anda memiliki definisi makro dalam proses pembuatan yang ditetapkan ke nilai yang tidak valid?
sumber
Saya mengalami masalah ini karena
.nuget\NuGet.exe
tidak termasuk dalam repositori saya. Meskipun saya mengaktifkanDownloadNuGetExe
di NuGet.targets, itu melaporkan kesalahan proxy ketika mencoba untuk mengunduhnya. Ini menyebabkan sisa proyek gagal.sumber
Kesalahan ini dapat ditampilkan jika Anda menggunakan majelis palsu. Menghapus pemalsuan mengarah pada keberhasilan membangun proyek.
sumber