Tür veya ad alanı adı mevcut değil [kapalı]


318

İyi çalışıyor Visual Studio 2010 ile inşa edilmiş bir WCF Veri Hizmeti projem var. Birdenbire artık derlenmedi. Bana şöyle mesajlar veriyordu:

Hata 7 'System.Data' ad alanında 'Hizmetler' türü veya ad alanı adı yok (bir derleme başvurusu eksik mi?) C: \ U ... s \ Visual Studio 2010 \ Projects ... \ DataService. cs ...

Hata 8 'Sistem' ad alanında 'Linq' türü veya ad alanı adı yok (bir montaj başvurusu eksik mi?) DependencyResolver.cs 3 14

Hata 10 'System.ServiceModel' ad alanında 'Web' türü veya ad alanı adı yok (bir montaj başvurusu eksik mi?)

Hata 12 'DataService' tür veya ad alanı adı bulunamadı (kullanma talimatını veya montaj referansını mı kaçırıyorsunuz?)

Nasıl düzeltebilirim?



18
Bu benim için yararlı oldu. Neden kapatıldığını bilmiyorum.
Gmail kullanıcısı

2
Cevaplar yararlı olmasına rağmen, orijinal soru çok açık uçlu ve cevaplar olsa bile, başkalarıyla ilişki
kurma

48
Hey, bak! SO hakkında yararlı bir soru. Oh, bekle, konu dışı. Ancak çok sayıda upvotes ve daha fazla upvotes ile bir cevabı var. Burada bir şey kesinlikle "kapalı", ama bu soru değil.
Jagd

3
Bunu kapatmak için oy veren çocuklar, sorudaki çok özel hatayı nasıl kaçırdılar ("Ad alanında ad veya ad alanı yok")? Benzer bir sorun yaşadım ve bu hata mesajını Google'a aldım ve bu soru en iyi sonuçtu. Yani soru hiç de belirsiz değil.
Simon Tewsi

Yanıtlar:


619

Aynı sorunu yaşadım ve tüm projelerin "Hedef Çerçevesi" ni aynı olacak şekilde ayarlamak zorunda kaldım. Sonra iyi inşa etti. Proje menüsünde ProjeAdı Özellikleri'ni tıklatın. Derleme sekmesini tıklayın. Gelişmiş Derleme Seçenekleri'ni tıklayın. Hedef Çerçeve'de istediğiniz çerçeveyi seçin.


13
Çözüm gezgininde projeyi sağ tıklayıp özellikleri seçerek "Hedef Çerçeve" yi ayarladım. Hedef Çerçeve varsayılan Uygulama sekmesinde görünür olmalıdır.
Kurabiye

4
@jaminator Bu, bazı durumlarda bir çözümdür. En azından benimkinde. Bazı nedenlerden dolayı, projem aynı çözümden var olan bir ad alanını kabul etmeyi reddetti. Sorun, konsol uygulamasının istemci profilini hedeflemesiydi.
Amadiere

3
Benim için de çalışıyor. Bir WPF projesi (.NET 4 İstemci Profili) ve bir sınıf kitaplığı projesi (.NET 4) başvurusu eklerken oluştu. Çok teşekkürler !!
Tamas Ionut

58
+ 1'leyin. Korkunç yanıltıcı hata mesajı. Muhtemelen anlamaya çalýţmam için saatlerimi kurtardý. Hey Microsoft "BLAH uyumsuz bir sürüm olduğu için BLAH ad alanını içe aktaramıyor" nasıl olur, ancak sanırım 184 upvotes Nathan'ı soyardı.
Gerald Davis

3
Projelerin Hedef çerçevelerini değiştiremediğimiz durumlar için bir çözüm var mı?
Raj123

43

System.Linq tanınmayan bir sorun vardı . usingİfadesi bir vb dolambaçlı bunu hedef dotnet 3.5 web siteme değiştirmek oldu çözüldü yol kırmızı yanıyordu, o zaman (benim durumumda 4.0) tekrar orijinal hedeflenen çerçevede geçin.


2
Benim için de çalıştı! Ama bunu iki kez yapmak zorunda kaldım ...
nicholeous

Aynı uygulama için farklı hedef çerçevelerin bazı web.config dosyalarını el ile birleştirdikten sonra, web.config çalışmayı durdurdu ve 500 Dahili Sunucu Hatası aldım. Açıklandığı gibi sıfırlandıktan sonra, bazı eski ayarlar Visual Studio 2012 tarafından web.config'den otomatik olarak kaldırıldı ve uygulama tekrar çalıştı.
humbad

Benzer bir sorun vardı, bence bazı çerçeve sürümleri System.Linqgeçerli bir kütüphane olarak tanımıyor
Callat

3
Teşekkür ederim. Bu konunun kapatılması çok saçma, çünkü bu benim fonksiyonumun ve referansımın neden birdenbire çalışmayı bıraktığını anlamaya çalışırken bir saat harcadıktan sonra bana yardımcı oldu. Benim için başarısız olan referans system.management.automation.dll
Bbb

Bu gerçekten bir sihirdi. Tıpkı bazen ayarları değiştirmenin hemen etkili olmadığı yeni Mobile Honor 8X'im gibi. Düzgün çalışması için birden çok kez ileri ve geri geçiş yapmam gerekiyor.
Harish NInge Gowda

28

Bunun, sınıf adı ( MyWorld.MyWorld = Namespace.ClassName) ile aynı ad alanı adına sahip olmama neden olduğunu buldum .

Ad alanınızı, sınıfınızla aynı ada sahip olmayan bir adla değiştirin; bu derlenir.

Kaynak


6
Bunu çözmek için sadece öneki Windows.Whateverileglobal::
joshcomley

20

LINQ to SQL kullanmaya çalıştığımda ASP.NET MVC sitesiyle aynı sorunla karşı karşıya . Sorunu şu şekilde çözdüm:

Solution Explorer -> Referanslar -> System.Data.Linq'e sağ tıklayın -> Yerel Kopyala (Doğru)


17

Hedef çerçevenizin aynı .NET sürümlerine sahip olup olmadığını kontrol edin. Aynı sorun vardı ve benim sınıf .NET 3.5 ve web çözüm 4.5 vardı. Bunları senkronize ettim ve işe yaradı :)


16
bu sadece birkaç ay önce gönderilen önceki cevapta yapılan ve açıklanan noktayı tekrarlar
gnat

12

Aynı sorunu yaşadım ve yukarıdakilerin tümünü herhangi bir başarı olmadan denedim, sonra ne olduğunu öğrendim:

Projelerimden birinde "Sistem" adlı bir klasör oluşturdum ve sonra bir sınıf oluşturdum. Sorun, "MyProject.System" ad alanında olsa bile .cs dosyası oluşturulduğunda "Sistem" adlı bir ad alanına sahip olmaktan kaynaklanıyor gibi görünüyor.

Geriye dönüp baktığımda bunun neden sorunlara neden olduğunu anlayabiliyorum. Hata mesajları başlangıçta sorunla ilgili görünmediği için ilk başta beni çok üzdü.


1
Referans için de bu sorunu yaşadım. Araçta daha açıklayıcı bir hata mesajı olsaydı iyi olurdu, ama oh iyi.
Nick

3
MSDN'de bir şey yayınladım ama MS bunun bir hata olmadığını söyledi. Bununla tartışmayacağım ama bunun nasıl sorunlara neden olabileceğini anlayacaklarını umuyordum.
GrandMasterFlush

1
Bu aldatıcılık ...
Jitka Darbie Hübnerová

12

System.Data.SQLite ile aynı sorunu yaşadım. Sorunun kaynağı kullandığınız dll projenizle aynı .NET sürümüne sahip olmasıdır.

Örneğin (benim durumumda) .NET 4.5 için SQLite kullandıysanız, platform hedefiniz de .NET 4.5 olmalıdır.

Platform hedefini şu şekilde bulabilirsiniz: Project> (proje adı) Properties> Build.


1
Bu, sahip olduğum bir sorunu çözdü. Hata iletisi, hangi DLL sorun olduğunu söylemek ötesinde çok yararlı değil.
PointlessSpike

7

Benim durumumda sorun oluyordu, çünkü yarattığım sınıfın mevcut sınıflara müdahale eden bir isim alanı vardı. Yeni A sınıfı zz.yy.xx ad alanına sahipti (yanlışlıkla). Başka bir yy.xx ad alanındaki nesnelere yapılan başvurular, A sınıfı veya ad alanı zz olan diğer sınıflarda derlenmemiştir.

A sınıfının ad alanını olması gereken yy.xx olarak değiştirdim ve çalışmaya başladı.


5

BAĞLI DOSYALARLA HERKES İÇİN: Bu sorun vardı ve silverlight kullanıyordum ve bu hatayı atan rahatsız edici dosya bağlantılı bir dosyaydı.

Derleyiciden gelen hata, dosyanın içinde yaşadığı projede hatanın meydana geldiğini söyledi. Hatanın bu projede DEĞİL olduğunu, bağlantılı dosyayı içeren projede meydana geldiğini söyledi. Bu projede bir referans eksikti.


Windows 10 üzerinde Visual Studio 2013 ile proje sınarken System.Management.Automation kullanarak .NET 4 projesi ile bu sorunu vardı. Proje .NET 4.5.1 yükseltme sorun düzeltildi.
Malcolm McCaffery

2

Projeyi yönetmek için Visual Studio'nun Git entegrasyonu kullanılırken bu sorunla karşılaştım . Bazı nedenlerden dolayı, Windows Phone 8 projesi x86'yı hedeflerken iyi derlenebilir, ancak ARM'yi hedeflemek için ayarladığımda, Microsoft ad alanında "Reklamcılık" ın bulunmadığını belirten bir hatayla derleme başarısız olur.

Microsoft.Advertising. *. Dll başvurusunu kaldırarak ve yeniden ekleyerek sorunu çözdüm.


1

Benim durumumda projelerde herhangi bir değişiklik olmadı, sadece derlemeyi bıraktı ve "XXX türü veya ad alanı adı mevcut değil" ve şikayetçi sınıfın kendisi için bu XXX ad alanı / sınıfı için iyi çalışıyor. Sorun gerçekten referanslarda!

Yeniden oluşturma adımları:

  1. Çözüm ProjectA, ProjectB'ye sahiptir. ProjectA, üçüncü taraf log4net'e başvurur ve işaretlenir Copy local: true. ProjectB ProjectA başvurur ve log4net başvurusu yoktur. Çözüm iyi derlenir.

  2. ProjectA: log4net için başvuru özelliğini değiştirin Copy local: false.

  3. Bin ve obj klasörlerini temizleyin.
  4. Derlediğinizde, ProjectA derler, ancak ProjectB ProjectA ad alanını bulamamaktan şikayet eder.

This is because ProjectB bin klasöründe üçüncü taraf kitaplığı eksik (log4net in my case)!

Bu durumda çözüm -

  1. üçüncü taraf kitaplık referanslarının Copy local: true veya olarak ayarlandığından emin olun.
  2. başvuru yolu altında proje özelliklerinde bu tür kitaplıklara yol ekleyin.

1

Microsoft.CommerceServer.Runtime.Orders atıfta bulunuyorum ve bu hatayla karşılaştım. Bu proje eskidir ve Target framework .NET 2.0'a sahiptir. Çıktıda bu hatayı aldım:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: The primary reference "Microsoft.CommerceServer.Runtime" could not be resolved because it has an indirect dependency on the framework assembly "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "Microsoft.CommerceServer.Runtime" or retarget your application to a framework version which contains "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

Sadece hedef çerçeveyi .NET 4 olarak değiştirdim ve şimdi kuruyor.


1

Hedef çerçevelerin aynı olmasını sağlamak ve VS2010'da bir WPF sınıf kitaplığıyla uğraşmak gibi her şey başarısız olursa, Visual Studio'yu yeniden başlatın. Bunu benim için yaptı.


benim durumumda vs2010, bir dll referans hata var, ben dll referans readd ve harika görünüyor, ama sonra oluşması type namespace erroroluşur. Ve ben yeniden başlattıktan sonra, orijinal dll hata gösterisi tekrar görsel stüdyo yeniden başlatın ve ben tekrar okudum ve başarı tekrar.
yu yang Jian

0

Aynı hataları yaşadım. Projemin yanlış Derleme adına sahip olduğunu keşfettikten sonra (farklı bir projeden dosyaları kopyaladım ve ad alanları biraz karıştı) ve geri değiştirdi, proje güzel bir şekilde derlendi.


Olsa da aşağı oy, bu benim sorunum oldu! Teşekkürler.
SteveCav

0

Yanlışlıkla benim çözümünde başka bir projede bir sınıfın bir kopyasını yapmıştı çok benzer bir hata mesajı aldım. Kopyayı silmek sorunu çözdü


0

Son zamanlarda bir Sistem Geri Yükleme yapmak zorunda kaldım ve geri yüklendikten sonra üzerinde çalıştığım birkaç dosyamın değişmesine / kaybolmasına neden oldu. Bunlardan bazıları DLL dosyalarıydı. Tüm projeyi almak için Kaynak Denetimi'ni kullandım, ancak yine de yukarıdakiyle benzer bir sorunum vardı. Bir DLL kaldırmanız ve hatalarınızı düzeltmek için readd yapmanız gerekebileceğini açıklayan bu cevabı buldum . Benim senaryomda durum böyleydi.

Çıkarma WebMatrix.WebDatave okuma yanı sıra ekleyerek WebMatrix.Databenim hata düzeltildi The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ....


-3

Kaynak denetimi altındaysanız .refresh.dll dosyasını silin. Sonra yeniden inşa. İşe yaramalı. Bu benim için çalıştı

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.