私は以下を取得しています:
型または名前空間名が見つかりませんでした
VS2010 の C# WPF アプリでエラーが発生しました。このコード領域は正常にコンパイルされていましたが、突然このエラーが発生しました。プロジェクト参照とステートメントを削除しusing
、VS2010 をシャットダウンして再起動してみましたが、それでもこの問題は発生します。
参照とステートメントに関して正しいことをしているように見えるのに、なぜこのようなことが起こるのか、何か考えはありますかusing
?
また、VS2010 ではその名前空間のインテリセンスが正常に動作していることにも気付きました。つまり、VS2010 にはプロジェクト参照があり、一方では名前空間が表示されていますが、コンパイル時には表示されないということでしょうか?
ベストアンサー1
これは、2 つのプロジェクト間の .NET Framework バージョンの非互換性によって発生する可能性があります。
それは 2 つの方法で発生します:
- 完全なフレームワーク プロジェクトを参照するクライアント プロファイル プロジェクト、または
- 新しいフレームワークバージョンをターゲットとする古いフレームワークバージョン
たとえば、アプリケーションが .NET 4 クライアント プロファイル フレームワークをターゲットにするように設定されていて、参照するプロジェクトが完全な .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 をターゲットとする新しいプロジェクトを作成し、新しいプロジェクトからそれらの古いプロジェクトを参照します)