タイプまたは名前空間名が存在しません[終了]


318

Visual Studio 2010で構築されたWCFデータサービスプロジェクトがあり、問題なく動作していました。突然、コンパイルできなくなりました。それは私に次のようなメッセージを与えていました:

エラー7タイプまたは名前空間名 'Services'は名前空間 'System.Data'に存在しません(アセンブリ参照がありませんか?)C:\ U ... s \ Visual Studio 2010 \ Projects ... \ DataService。 cs ...

エラー8タイプまたは名前空間名 'Linq'が名前空間 'System'に存在しません(アセンブリ参照がありませんか?)DependencyResolver.cs 3 14

エラー10タイプまたは名前空間名「Web」が名前空間「System.ServiceModel」に存在しません(アセンブリ参照がありませんか?)

エラー12タイプまたは名前空間名 'DataService'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

どうすれば修正できますか?


4
それらを追加した後でも、エラーメッセージは残ります
Attilah

18
これは私にとって役に立ちました。なぜ閉鎖されたのかわかりません。
Gmailユーザー

2
答えは有用であったものの、元の質問には答えが何にもかかわらず、誰に関係するのは非常にオープンエンドとはほとんどありませんので、それはだと思う
WongKongPhooey

48
ねえ、見て!SOに関する有用な質問。ああ、待って、それは話題外です。しかし、それは非常に多くの賛成票と、さらに多くの賛成票を持つ回答を持っています。ここで何かが確かに「オフ」になっていますが、これはこの質問ではありません。
ジャグド2017

3
これを閉じるために投票した人は、質問の非常に具体的なエラー(「型または名前空間名が名前空間に存在しません」)をどのようにして見逃しましたか?私も同様の問題を抱えていて、そのエラーメッセージをGoogleで検索したところ、この質問が一番の結果でした。したがって、質問はまったくあいまいではありません。
Simon Tewsi

回答:


619

同じ問題があり、すべてのプロジェクトの「ターゲットフレームワーク」を同じに設定する必要がありました。その後、それはうまく構築されました。[プロジェクト]メニューの[ProjectNameのプロパティ]をクリックします。コンパイルタブをクリックします。Advanced Compile Optionsをクリックします。ターゲットフレームワークで、目的のフレームワークを選択します。


13
ソリューションエクスプローラーでプロジェクトを右クリックし、プロパティを選択して、「ターゲットフレームワーク」を設定します。ターゲットフレームワークは、デフォルトのアプリケーションタブに表示されます。
Cookie

4
@jaminatorこれは場合によっては解決策です。少なくとも私のものでは。何らかの理由で、私のプロジェクトは、同じソリューションから存在する名前空間を受け入れることを拒否しました。問題は、コンソールアプリケーションがクライアントプロファイルをターゲットにしていることでした。
アマディエール2012年

3
私もうまくいきます。WPFプロジェクト(.NET 4クライアントプロファイル)とクラスライブラリプロジェクト(.NET 4)参照を追加しているときに発生しました。本当にありがとう !!
Tamas Ionut

58
これに+1。恐ろしく誤解を招くエラーメッセージ。おそらくそれを理解しようとする時間を節約できたでしょう。「BLAHは互換性のないバージョンであるため名前空間BLAHをインポートできません」というMicrosoftはどうでしょうか。しかし、184票のNathanを奪ったと思います。
ジェラルドデイビス

3
プロジェクトのターゲットフレームワークを変更できない場合の回避策はありますか?
Raj123 2015年

43

System.Linqが認識されないという問題がありました。using声明はなど、波線私はそれが元のターゲットフレームワーク(私の場合は4.0)に戻し、ターゲット・DOTNET 3.5に私のウェブサイトを変更することでした解決方法を赤くしていました。


2
私も働いた!しかし、私はそれを2度しなければなりませんでした...
nicholeous 2013

同じアプリの異なるターゲットフレームワークのいくつかのweb.configファイルを手動でマージした後、web.configが機能しなくなり、500内部サーバーエラーが発生しました。説明に従ってリセットした後、いくつかの古い設定がweb.configからVisual Studio 2012によって自動的に削除され、その後アプリが再び機能しました。
humbads 14

同様の問題があった場合、特定のフレームワークバージョンSystem.Linqが有効なライブラリとして認識されないだけだと思います
Callat

3
ありがとうございました。私の機能と参照が突然機能しなくなった理由を理解するために1時間も費やした後、これが私を助けたので、このトピックが閉じられたことはばかげています。私にとって失敗した参照はsystem.management.automation.dllでした
Bbb

それは本当に魔法でした。新しいMobile Honor 8Xのように、設定の変更がすぐに反映されない場合があります。それが適切に機能するためには、何度も切り替えを行う必要があります。
Harish NInge Gowda

28

これは、クラス名(MyWorld.MyWorld = Namespace.ClassName)と同じ名前空間名を持っていることが原因であることがわかりました。

名前空間をクラスと同じ名前ではない名前に変更すると、コンパイルされます。

ソース


6
それを解決するには、接頭辞をWindows.Whatever付けますglobal::
joshcomley 2014年

20

LINQ to SQLを使用しようとしたときに、ASP.NET MVCサイトで同じ問題に直面しました。次の方法で問題を修正しました:

ソリューションエクスプローラー->参照-> System.Data.Linqを右クリック->ローカルにコピー(True)


17

ターゲットフレームワークの.NETバージョンが同じであることを確認してください。同じ問題があり、クラス.NETは3.5で、Webソリューションは4.5でした。私はそれらを同期させ、それがうまくいった:)


16
これは単にポイントが作られたとして説明を繰り返す前に答え、この1の前に数ヶ月を投稿されました
ブヨ

12

私は同じ問題を抱えており、上記のすべてを試してもうまくいかず、それが何であるかがわかりました:

プロジェクトの1つに「System」というフォルダーを作成し、その中にクラスを作成しました。この問題は、「MyProject.System」のネームスペースにある場合でも、.csファイルが作成されるときに「System」というネームスペースがあることに起因するようです。

振り返ると、なぜこれが問題を引き起こすのか理解できます。エラーメッセージは最初は問題に関連していないようで、最初は本当に困惑しました。


1
参考までに、この問題もありました。ツールにもっと説明的なエラーメッセージがあればいいのですが、まあ。
Nick

3
私はそれをMSDNに投稿しましたが、MSはそれはバグではないと言いました。私はそれについては議論しませんが、彼らがそれがどのように問題を引き起こす可能性があるかを理解してくれることを望みました。
GrandMasterFlush 2014年

1
それは欺瞞です...
Jitka DarbieHübnerová15年1

12

System.Data.SQLiteでも同じ問題が発生しました。問題の原因は、使用したDLLがプロジェクトと同じ.NETバージョンである必要があることです。

たとえば、SQLite for .NET 4.5を使用している場合(私の場合)、プラットフォームターゲットも.NET 4.5にする必要があります。

プラットフォームターゲットは、[プロジェクト]>(プロジェクト名)[プロパティ]> [ビルド]で確認できます。


1
これは私がちょうど持っていた問題を解決しました。エラーメッセージは、どのDLLが問題であるかを伝える以外にはあまり役に立ちません。
PointlessSpike、2015

7

私の場合、私が作成したクラスに既存のクラスと干渉する名前空間があったため、問題が発生していました。新しいクラスAの名前空間はzz.yy.xx(誤って)でした。別の名前空間yy.xxのオブジェクトへの参照は、クラスAまたは名前空間がzzである他のクラスでコンパイルされませんでした。

私はクラスAの名前空間をyy.xxに変更しました。


5

リンクされたファイルを持つ人の場合:この問題が発生し、Silverlightを使用していて、このエラーをスローしていた問題のファイルはリンクされたファイルでした。

コンパイラからのエラーにより、ファイルが存在するプロジェクトでエラーが発生していることがわかりました。結局、エラーはそのプロジェクトではなく、リンクされたファイルを含むプロジェクトで発生していました。そのプロジェクトには参照がありませんでした。


Windows 10でVisual Studio 2013を使用してプロジェクトをテストすると、System.Management.Automationを使用した.NET 4プロジェクトでこの問題が発生しました。プロジェクトを.NET 4.5.1にアップグレードすると、問題が解決しました。
Malcolm McCaffery 2015年

2

Visual StudioのGit統合を使用してプロジェクトを管理しているときに、この問題が発生しました。何らかの理由で、Windows Phone 8プロジェクトはx86をターゲットにすると問題なくコンパイルされましたが、ARMをターゲットに設定すると、Microsoftネームスペースに「アドバタイズ」が存在しないことを示すエラーでコンパイルに失敗しました。

Microsoft.Advertising。*。dll参照を削除して再度追加することで問題を解決することになりました。


1

私の場合、プロジェクトに変更はありませんでした。コンパイルが停止し、「タイプまたは名前空間名XXXが存在しません」で、そのXXX名前空間/クラスの不満のあるクラス自体で問題なく機能します。問題は確かに参考文献にありました!

再現する手順:

  1. ソリューションにはProjectA、ProjectBがあります。ProjectAはサードパーティのlog4netを参照しており、マークされていCopy local: trueます。ProjectBはProjectAを参照し、log4netへの参照はありません。 ソリューションは正常にコンパイルされます。

  2. ProjectAの変更:log4netの参照プロパティをに変更Copy local: false

  3. binおよびobjフォルダーをクリーンアップします。
  4. コンパイルすると、ProjectAはコンパイルされますが、ProjectBはProjectA名前空間が見つからないというメッセージを出します。

This is because ProjectB binフォルダーにサードパーティライブラリがありません (log4net in my case)!

この場合の解決策は-

  1. サードパーティのライブラリ参照がCopy local: true またはに設定されていることを確認してください
  2. 参照パスの下のプロジェクトプロパティでそのようなライブラリへのパスを追加します。

1

Microsoft.CommerceServer.Runtime.Ordersを参照していますが、このエラーが発生しました。このプロジェクトは古く、ターゲットフレームワーク.NET 2.0を持っています。出力で私はこのエラーがありました:

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"

ターゲットフレームワークを.NET 4に変更しただけで、ビルドされます。


1

そして、ターゲットフレームワークが同じであることを確認するなど、その他すべてが失敗し、VS2010でWPFクラスライブラリを扱っている場合は、Visual Studioを再起動するだけです。それは私のためにそれをしました。


私の場合vs2010では、dll参照にエラーがあり、dll参照を読み取りました。それは素晴らしいようですが、ビルド後に type namespace error発生します。そして、ビジュアルスタジオを再起動します。再起動した後、元のdllエラーショーが再び表示され、それを再度読み取り、再度ビルドして、成功しました。
yu yang Jian 2016

0

同じエラーが発生しました。プロジェクトのアセンブリ名が間違っている(別のプロジェクトからファイルをコピーして名前空間が少し混乱した)ことを発見し、元に戻したところ、プロジェクトは適切にコンパイルされました。


それは反対投票でしたが、これは私の問題でした!ありがとう。
SteveCav 2016

0

私のソリューションの別のプロジェクトでクラスを誤って複製したために発生した、非常によく似たエラーメッセージが表示されました。重複を削除すると問題が修正されました


0

私は最近システムの復元を行う必要があり、復元以降に取り組んでいたいくつかのファイルが変更/消失しました。それらのいくつかはDLLファイルでした。ソース管理を使用してプロジェクト全体を取得しましたが、それでも上記と同様の問題がありました。エラーを修正するためにDLLを削除して再度読み込む必要があるかもしれないと説明したこの回答を見つけました。これは私のシナリオの場合でした。

それを削除WebMatrix.WebDataして追加し、追加しWebMatrix.Dataて私のエラーを修正しましたThe type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ...


-3

ソース管理下にある場合は、.refresh.dllファイルを削除します。その後、再構築します。うまくいくはずです。これは私のために働いた

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.