web-dev-qa-db-ja.com

型または名前空間の名前が存在しません

私はWCFデータサービスプロジェクトをVisual Studio 2010で構築しました。突然、それはもうコンパイルされませんでした。それは私のようなメッセージを与えていました:

エラー7型または名前空間の名前 'Services'が名前空間 'System.Data'に存在しません(アセンブリ参照がありませんか?) cs ...

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

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

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

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

275
Attilah

私は同じ問題を抱えており、すべてのプロジェクトの「ターゲットフレームワーク」を同じものに設定する必要がありました。それからそれはうまく造った。 [プロジェクト]メニューの[ProjectNameのプロパティ]をクリックします。コンパイルタブをクリックします。 [詳細コンパイルオプション]をクリックします。ターゲットフレームワークで、希望のフレームワークを選択します。

566
Nathan Koop

System.Linq が認識されないという問題がありました。 usingname__ステートメントには、赤い波線が描かれていました。私が解決したのは、自分のWebサイトをdotnet 3.5をターゲットにしてから、元のターゲットフレームワーク(私の場合は4.0)に戻すことでした。

39
john west

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

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

出典

21
KiwiNige

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

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

20
ModChowdhury

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

18
Gorglar

私はSystem.Data.SQLiteで同じ問題を経験しました。問題の原因はです。使用したDLLは、プロジェクトと同じ.NETバージョンを使用してください。

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

プラットフォームターゲットは、Project>(プロジェクト名)Properties> Buildで見つけることができます。

12
hakanali_md

私は 同じ問題を抱えていました そして成功することなく上記のすべてを試してみました、そして私はそれが何であるか見つけました:

私のプロジェクトの1つに "System"というフォルダを作成し、その中にクラスを作成しました。この問題は、 "MyProject.System"という名前空間内にあっても、.csファイルが作成されたときに "System"という名前空間があることから発生しているようです。

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

11

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

私はクラスAの名前空間をyy.xxに変更しました。これは本来のはずのもので、動作し始めました。

7
zDan

リンクファイルがある人のために:私はこの問題があり、silverlightを使用していて、このエラーを投げていた問題のあるファイルはリンクファイルでした。

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

5
Mario

私はMicrosoft.CommerceServer.Runtime.Ordersを参照していて、このエラーを経験しました。このプロジェクトは古く、Target framework .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
Skychan

プロジェクトの管理にVisual Studioの Git 統合を使用しているときにこの問題に遭遇しました。何らかの理由で、Windows Phone 8プロジェクトはx86をターゲットにしたときにうまくコンパイルできましたが、ARMをターゲットにしたとき、 "Advertising"がMicrosoft名前空間に存在しないことを示すエラーでコンパイルに失敗しました。

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

1
Tom Stu

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

1
Klaus Nji

私の場合、プロジェクトに変更はありませんでした、それはただコンパイルするのをやめて、「型または名前空間名XXXは存在しません」で、そのXXX名前空間/クラスのための文句を言うクラス自体はうまく機能します。問題は確かに参考文献にありました!

再現する手順:

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

  2. ProjectAでlog4netのreferenceプロパティを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
Sasha Bond

私は同じエラーを経験しました。自分のプロジェクトに間違ったアセンブリ名があること(別のプロジェクトからファイルをコピーしたときに名前空間が少し混乱した)を見つけて元に戻すと、プロジェクトはうまくコンパイルされました。

0
Fred

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

0
Chris Halcrow

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

WebMatrix.WebDataを削除してそれを再読み込みすると共にWebMatrix.Dataを追加することでThe type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ...のエラーが修正されました。