1. ホーム
  2. c#

[解決済み] "型または名前空間名が見つかりません "と表示されるが、すべて問題ないように見える?

2022-04-19 08:47:24

質問

が出てきました。

型または名前空間名が見つかりませんでした。

VS2010 の C# WPF アプリでエラーが発生しました。この部分のコードはうまくコンパイルできていたのですが、突然このエラーが発生しました。プロジェクトリファレンスを削除してみたり using ステートメントを使用し、VS2010 をシャットダウンして再起動しても、この問題が発生します。

正しいことをしているように見えるのですが、なぜこのようなことが起こるのか、何か思い当たることはありませんか? Re Reference & using ステートメントを使用していますか?

VS2010 では、そのネームスペースのインテリセンスが問題なく動作していることも確認しました。つまり、VS2010 はプロジェクト参照を持ち、ネームスペースを見ているようですが、コンパイル時には見ていないのでしょうか?

どうすればいいですか?

これは、2つのプロジェクト間の.Netフレームワークのバージョンの非互換性の結果である可能性があります。

この現象は2つの方法で発生する可能性があります。

  1. フルフレームワークプロジェクトを参照するクライアントプロファイルプロジェクト、または
  2. 古いフレームワークバージョンが新しいフレームワークバージョンをターゲットにしている場合

たとえば、アプリケーションが .Net 4 Client Profile フレームワークをターゲットにするように設定されており、参照するプロジェクトが完全な .Net 4 フレームワークをターゲットにしている場合に起こります。

だから、それを明確にするために

  • プロジェクトAは、クライアントプロファイルフレームワークをターゲットにしています
  • プロジェクトAはプロジェクトBを参照する
  • プロジェクトBは、フルフレームワークをターゲットとしています

この場合の解決策は、アプリケーションのフレームワークターゲットをアップグレードするか(プロジェクトA)、参照するアセンブリのターゲットをダウングレードすること(プロジェクトB)です。フルフレームワークアプリがクライアントプロファイルフレームワークアセンブリを参照/消費することは問題ありませんが、その逆はできません(クライアントプロファイルはフルフレームワークターゲットアセンブリを参照できません)。

VS2012 または VS2013 (デフォルトフレームワークとして .Net 4.5 を使用) で新しいプロジェクトを作成した場合にも、このエラーが発生することがありますので、注意してください。

  • 参照するプロジェクトが .Net 4.0 を使用している(これは VS2010 から VS2012 または VS2013 に移行し、新しいプロジェクトを追加した場合によくあることです)。

  • 参照されるプロジェクトが 4.5.1 または 4.5.3 などのより大きなバージョンを使用している (既存のプロジェクトを最新バージョンに再ターゲットしたが、VS はまだ v4.5 をターゲットとする新しいプロジェクトを作成し、新しいプロジェクトからそれらの古いプロジェクトを参照します)