Meta veri dosyası… proje oluştururken hata bulunamadı


98

Visual Studio 2008'i her başlattığımda, projeyi ilk kez çalıştırmayı denediğimde CS0006 hatası alıyorum. Meta veri dosyası ... bulunamadı. Tam çözümü yeniden inşa edersem işe yarıyor.

Çözüm hakkında bazı bilgiler:

  • Hata ayıklama modunda oluşturuyorum ve Visual Studio, sürüm klasöründe dll: ler bulamamaktan şikayet ediyor.

  • Visual Studio'nun şikayet ettiği projeler, çözümdeki diğer birçok proje tarafından kullanılmaktadır.

  • Tüm projelerin varsayılan çıktı yolunu sırasıyla bir ...... \ build \ debug \ ProjeAdı ve ...... \ build \ release \ ProjeAdı olarak değiştirdim. (Sadece tüm derleme dosyalarını tek bir dizinde almak için)

  • Başka bir çözümle aynı sorunu yaşıyorum.

  • Çözüm sıfırdan oluşturuldu.

  • Çözümde 9 proje var. Dotnet 3.5 kullanan bir WPF ve 8 sınıf kitaplığı.

Bu soruna neyin sebep olduğuna dair bir fikriniz var mı?


Yanıtlar:


133

"Meta verinin bulunamaması" konusunda benzer bir sorun yaşadım. çözüm özelliğinde, her proje için Yapı / Yapılandırma Yöneticisi'nde "yapı" onay kutusunun işaretlendiğinden emin olun .


16
Bunu bulamayan herkes için, Build / Configuration Manager, Build menüsü -> Configuration Manager menü öğesini ifade eder.
John Kurlak

4
Az önce bu sorunla karşılaştım, nedeni, başvurulan projenin başarılı bir şekilde oluşturulmamasına neden olan başka bir hataydı. Bu temiz bir kullanıma alınmıştı, bu nedenle önceki başarılı derlemelerden hiçbir dll dosyası yoktu. Hataları düzeltin ve başvurulan bir projenin doğru şekilde oluşturulduğundan emin olun.
Moulde

9
Yukarıda Nick'in belirttiği gibi, bazen bu bile yardımcı olmaz. Bu durumda VS'yi kapatıp yeniden başlatmak her zaman benim için çalıştı. YMMV.
philofinfinitejest

3
Sorunu çözmedi. VS'yi yeniden başlattım ve sorunu çözmedi.
Shimmy Weitzhandler

26

Buna genellikle, hatayı atan çözümden farklı bir çözümde başvurulan bir proje neden olur. Diğer çözümü temizlerseniz veya kodu dallandırırsanız, bu hatayı büyük olasılıkla görürsünüz. Çözüm, "meta veri bulunamadı" hataları listenizi aşağı kaydırmak ve projelerin referanslarına bakmaktır. 9/10 kez, bu çözümde olmayan bir projeye kırık bir referans göreceksiniz. Referans hatalarını düzeltmek için projeleri ekleyin ve yeniden oluşturun. Bu onu düzeltmeli.

(Bugün bununla yeni karşılaştım ve geçmişte de yaşadım ve bu HER ZAMAN işe yaradı)


Sadece çözümümdeki projeler şikayet ediyor.
Kek Adam

7

Bu sorunu yaşadım, yardımcı olup olmayacağından emin değilim, ancak benimki aynı projenin iki farklı sürümünün iki farklı çözüm tarafından referans gösterilmesinden kaynaklanıyordu. Çözümü ilk önce doğru projeye referansla oluşturduğumda, ikinci çözüm iyi olacaktı, ancak, ilk çözümü temizleyip ikinci çözümü oluşturmaya çalışırsam, bu dll referans hata mesajlarıyla başarısız olur.

Benim için çözüm, yanlışlıkla çoğaltılmış aynı ada sahip iki projem olduğunu bulmak ve eski yanlış projeye referansı kaldırıp yenisine bir referans eklemekti.

Her halükarda, bu mesajlar biraz kırmızı ringa balığı gibi görünüyor, derleme çıktınızı kontrol eder ve inşa edemeyen ilk projeyi bulur ve o projedeki referansları çok dikkatli bir şekilde kontrol ederdim.


1
Bu mesajların yanlışlığına ilişkin not için +1. Bu benim için kırpıldı çünkü bir çözümde referans verilen montajlara giden yollar kesildi. Bunları okumak ve yeniden derlemek sorunu çözdü.
E. Rodriguez

6

Doğrulanması gereken başka bir şey de yol uzunluğu ... bu da Meta Veri Dosyasının bulunmamasına ve derleme hatalarına neden oluyor ... Klasörlerimi daha kısa yollar olarak yeniden adlandırdım ve daha önce tanınmayan ve siyah kalan, yalnızca yeniden adlandırarak maviye dönen sınıflar dosya.


5

Benim için başka bir projede başvurulan bir projem vardı. Çözüm gezgini penceresindeki referans listesinde kırıldığını göstermedi, ancak yine de kaldırdım ve okudum. Şimdi iyi inşa ediyor!


Gerçekten de tüm referansları kaldırıp tekrar ekledim.

3

VS2012'de tüm bu adımları uyguladım, ancak çözümü bir bütün olarak oluştururken bu sorunla karşılaşmaya devam ettim (bireysel projeler, hatasız olarak iyi inşa edildi).

Çözüm Gezgini'nde Çözümünüze sağ tıklayıp "Derleme Sırası" nı seçerseniz, VS'nin çözümünüzü yeniden oluşturmak için kullandığı sırayı görebileceğinizi buldum. Muhtemelen yanlıştır.

Bağımlılıklar sekmesine tıklayıp çözümdeki diğer projelere bağlı projeleri seçerek ve bağlı oldukları projeleri kontrol ederek derleme sırasını düzeltebilirsiniz. Tamam'a bastığınızda ve çözümü yeniden oluşturduğunuzda, gitmekte fayda var.


2

Geçmişte VS2005'te ve şu anda VS2008'de bunu aşma şeklim, tüm bağımlılıkların doğru olduğundan ve referansların dll'leri değil projelere işaret ettiğinden emin olmaktır. Ardından her projeyi bağımlılık sırasına göre manuel olarak oluşturun. Sonuncusu oluşturulduktan sonra tam bir çözüm derlemesi çalıştırabilirsiniz ve bunun için sorun olmaz.

Bu cevap, sorunun 15 aydan daha eski olduğunu bildiğim için başkaları için ileride başvurmak içindir.

Şerefe


2

Bahsetmek istediğim birkaç nokta var.

MSBuild altında derleme dosyanız olarak çözüm dosyasına güveniyorsanız, projeleri inşa etmelerini istediğiniz sırayla, yani projelerin karşılıklı bağımlılık sırasına göre çözüm dosyasına eklediğinizden emin olun. Çözümde diğer projelerin bağlı olduğu projeleriniz varsa, ancak referanslar "Proje Referansları" yerine "Referanslar" olarak eklenmişse bu çok önemli hale gelir.

Veba gibi bundan kaçınmalısınız, ancak bunu yapmanız gerekirse, en azından bağımlı projelerin çözüm dosyasında daha önce göründüğünden emin olun.

Visual Studio'nun derleme sırasını oluşturma biçiminin, MSBuild'in yaptığı gibi tam olarak aynı olmadığını aklınızda bulundurmalısınız. Bunun nedeni, MSBuild'in bağımlılıkların ne olduğunu söylemek için öncelikle proje dosyasına bağlı olmasıdır, oysa Visual Studio bunları çözüm dosyasına da kaydedebilir. Bu nedenle, bazen Visual Studio'nun çözümü mükemmel şekilde oluşturduğu durumları görebilirsiniz, ancak MSBuild bunu yapamaz.

Çözüm dosyasında projelerin görünme sırasını ve ayrıca çözüm dosyasındaki bir Web Sitesi projesindeki ProjectReferences öğesinde listelenen projelerin sırasını elden geçirmem gereken birkaç durum yaşadım.

Umarım yukarıdaki bilgiler yardımcı olur.


2

Örneğin LinqtoSQL Veri bağlamlarını kullanırsanız ve .designer.cs dosyası eksikse, Metadata dosyası bulunamadı hatası alırsınız.

Designer.cs dosyasını yeniden oluşturmak kolaydır.

Xml görünümünü kullanarak dbml'yi açın. Boş bir satır ekleyin, ardından kaldırın ve kaydedin. Bu, designer.cs dosyanızı yeniden oluşturmalıdır.

Bazı durumlarda, veri bağlamınızın arka plan kodunda kodunuz varsa, bu geçici çözüm çalışmayacaktır. Bu durumda, kodu arkasındaki koddan çıkarın ve not defterine veya başka bir şeye koyun. DC'den bir satırı ekleyip kaldırarak hile yapın ve kaydedin. Şimdi kodu geri koyun ve kaydedin.


2

SVN'den projeyi her güncellediğimde benzer bir sorun yaşıyorum.
ASP.NET için başka bir çözüm:

  1. IDE'yi kapatın.
  2. İçindeki dosyaları silin C:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\.

1

Ben de bu hatayı yaşadım ve bunun nedeni Projenin kendisine atıfta bulunmasıydı. Nasıl olduğu hakkında hiçbir fikrim yok ama referansı kaldırdım ve işte


1

Öncelikle, her proje için Build -> Configuration Manager'da "build" onay kutusunun işaretlendiğinden emin olun.

Bu durumda, Build -> Configuration Manager menüsü altında tüm projeleri zaten seçtiyseniz ve VS hilesini yeniden başlatmak sizin için çalışmazsa, dosya (lar) ın referansını (dll veya cs olabilir) projenizi ve bu referansları manuel olarak silin. Bu dosyalar / referanslar sarı simge ile gösterilmelidir. Hata kesinlikle hangi çözüm projesine bakmanız gerektiğini size yönlendirir.

Bu hatanın nedeni, dosyaları Windows gezgininde manuel olarak silmiş olmanız ve VS'nin referansı güncellememiş olması ve artık mevcut olmayan dosyayı bulmaya çalışmasıdır!


1

Benim durumumda, çözümümden birinin bilgisayarda olmayan bir şeye (VBIDE) başvurduğunu öğrendim. Sorunlu referansı kaldırdıktan sonra, projelerin geri kalanı doğru şekilde oluşturuldu. Umarım bu birine yardımcı olur.

Ve başka bir durumda, bazı kodları bir projeden diğerine taşıdım ve bu kod parçası Json.net'e referans veriyordu. Json.net'e manuel olarak bir referans ekledim ama bu sorunu ortaya çıkardı. Json.net'i NuGet üzerinden kurarak çözdüm ve bu sorunu çözdü. Umarım bu birine yardımcı olur.


0

Aynı şey oldu. Aynı kitaplık projelerine (.net 3.5) başvuran birkaç çözümüm var. Biri hata ayıklama / normal yapılandırmada ve başka bir derleyici yönergesini (sqlite / yerel kip) kullanarak oluşturulduğunda, bunun olacağını fark ettim. Basitçe her iki projeyi de aynı direktiflerle inşa edin ve iyi olmalısınız.


0

Çözüme yeni bir proje eklediyseniz, bunun derleme listesinde olup olmadığını kontrol edin (Yapılandırma Yöneticisi'ne bakın)


0

Matlab tarafından oluşturulan bir dll dosyasını dahil etmek istediğimde kaydetme sorunuyla karşılaştım. Ve nihayet bunu bir .ctf dosyasını kopyalayarak çözdüm, bu da sanırım sertifika anlamına gelir ve .dll dosyasının düzgün çalışması için gerekli olan .dll dosyasıyla birlikte bir .netmodule. Ve bu gerçekten işe yaradı! Bu yüzden, önerim, .dll'nin başka dosyalara ihtiyaç duyup duymadığını kontrol etmektir.


0

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

Ben de aynı hatayı alıyordum. Ve proje referanslarını kaldırmaya ve yeniden eklemeye karar verdim. Referans verilen projelerin her birinde Veritabanı referansı boş olduğu için onları geri ekleyemedim.

Veritabanı referansını doğru ayara sıfırladıktan sonra, daha fazla sorun olmadan oluşturabildim. Ek olarak, bu, VSS'de dallandırılmış kaynak kodunu aldıktan sonra bu projeyi yeniden inşa etmek için ilk girişimimdi.

İyi şanslar


0

Bu hatayı, projede derleme adının değiştirildiği, ancak referansın güncellenmediği proje bağımlılıklarımdan birinden kaynaklanıyordu. Bu nedenle referansı güncellemek veya derlemeyi yeniden adlandırmak onu düzeltecektir.


0

EE - Benim durumumda sorun Varlık çerçevesine sahip projedeydi, diyagramı açın herhangi bir tabloyu 2 cm sürükleyin :) ve kaydedin, VS tüm bağlantılarını DB'ye güncelleyecek ... bu projeleri oluşturun ve çözümü oluşturun , Buildssss.


0

Beni düzelten tek şey (çünkü VS2010'u bir yönetici hesabında çalıştırmıyorum) VS120COMNTOOLS ortam değişkenini Sistem Değişkenlerinden Kullanıcı Değişkenlerine manuel olarak taşımak.


0

.Csproj dosyanızdan artık kaynak denetiminde ve dosya sisteminde bulunmayan tüm kaynak dosyaların girişlerini silmek benim için çalıştı.


Ayrıntılı yaklaşım:

Pekala, aşağıdaki cevabım sadece tüm çözümlerin özeti değil, daha fazlasını da sunuyor.

Bölüm 1):

Genel çözümlerde:

Bu türden 4 hata ('meta veri dosyası bulunamadı') ve 'Kaynak Dosya Açılamadı (' Belirtilmemiş hata ')' diyen 1 hatayla karşılaştım.

'Meta veri dosyası bulunamadı' hatasından kurtulmaya çalıştım. Bunun için birçok gönderi, blog vb. Okudum ve bu çözümlerin etkili olabileceğini buldum (burada özetleyerek):

  1. VS'yi yeniden başlatın ve tekrar oluşturmayı deneyin.

  2. 'Çözüm Gezgini'ne gidin . Çözüm'e sağ tıklayın. Özellikler'e gidin . 'Configuration Manager'a gidin . 'Build' altındaki onay kutularının olup olmadığını kontrol edin işaretli olup olmadığını kontrol edin. Herhangi biri veya tümü işaretli değilse, kontrol edin ve yeniden oluşturmayı deneyin.

  3. Yukarıdaki çözüm (ler) işe yaramazsa, yukarıdaki 2. adımda belirtilen sırayı izleyin ve tüm onay kutuları işaretlenmiş olsa bile, işaretlerini kaldırın, tekrar kontrol edin ve yeniden oluşturmayı deneyin.

  4. Derleme Düzeni ve Proje Bağımlılıkları:

    'Çözüm Gezgini'ne gidin . Çözüm'e sağ tıklayın. Git '... Proje bağımlılıklar' . 2 sekme göreceksiniz: 'Bağımlılıklar' ve 'Oluşturma Düzeni' . Bu inşa sırası, çözümün inşa edildiği sıradır. Diğerine bağımlı olan (örneğin 'proje2') bir projenin (proje2) önce inşa etmeye çalışıp çalışmadığını doğrulamak için proje bağımlılıklarını ve derleme sırasını kontrol edin. Hatanın nedeni bu olabilir.

  5. Eksik .dll'nin yolunu kontrol edin:

    Eksik .dll'nin yolunu kontrol edin. Yol boşluk veya başka bir geçersiz yol karakteri içeriyorsa, yolu kaldırın ve yeniden oluşturmayı deneyin.

    Nedeni buysa, yapım sırasını ayarlayın.


Bölüm 2):

Benim özel durumum:

Yukarıdaki tüm adımları çeşitli permütasyonlar ve kombinasyonlarla VS'yi birkaç kez yeniden başlatarak denedim. Ama bana yardımcı olmadı.

Bu yüzden karşılaştığım diğer hatalardan kurtulmaya karar verdim ('Kaynak Dosya Açılamadı (' Belirtilmemiş hata ')').

Bir bloga rastladım: http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

O blogda bahsedilen adımları denedim ve 'Kaynak Dosya Açılamadı (' Belirtilmemiş hata ')' hatasından kurtuldum ve şaşırtıcı bir şekilde diğer hatalardan da ('meta veri dosyası bulunamadı') kurtuldum .


Bölüm (3):

Hikayeden çıkarılacak ders:

Hatayı gidermek için yukarıdaki (1) numaralı bölümde belirtilen tüm çözümleri (ve diğer çözümleri) deneyin. Yukarıdaki (2) numaralı bölümde bahsedilen blog'a göre hiçbir şey işe yaramazsa , .csproj dosyanızdan artık kaynak denetiminde ve dosya sisteminde bulunmayan tüm kaynak dosyaların girişlerini silin .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.