2011-07-08 25 views
25

私が作成したクラスライブラリを参照しようとしているwpfアプリケーションがあります。 .dllへの参照を追加しました。 そして私はファイルにusingステートメントを追加しました。そしてintellisenseは実際に新しい名前空間を見ます。参照が存在するときに型または名前空間が見つかりません

私のコードでは、追加された.dllでクラスの新しいオブジェクトを作成できます。インテリセンスはすべての方法を見ます。何の問題もなく、誤りもありません。

私は私のWPFアプリケーションを構築しようとすると、突然、私は型または名前空間が私を追加しましたDLLのエラーを発見することはできません取得します。

その後、その.dllからオブジェクトを作成しようとするとエラーが発生します。

私が構築する前に、なぜそれが動作しません。..何が起こっているかを得ることはありませんが、私はビルドするときには、その.dllファイルは、私が参照していますここで、それは分かっていないことを決定?

はまた、私が追加しようとしています、そして、それはエラーなしでビルドをmadesは、必ずそのクラスライブラリに行っています。

+3

dll参照がプロジェクトより高いレベルのフレームワークでないことを確認してください。つまり4.0のDLLを参照している3.5プロジェクト –

答えて

60

この最も一般的な原因は、.DLLが完全な.NET Frameworkを対象としていますが、WPFアプリケーションがクライアントプロファイルを対象としていることが原因です。

たとえば、あなたのライブラリーのターゲット.NET 3.5は、あなたのWPFアプリケーションが完全な.NET 3.5または4.0フレームワークではなく、クライアント・プロファイルをターゲットにしてくださいます。

+6

マイクロソフトでは、このリンクを解決策のヒントとして提供しますが、意味のない一般的なエラーメッセージではありません。 –

+0

同様に、.NET 4プロジェクトから.NET 4.5プロジェクトを参照するときにこのエラーが発生しました – mao47

0

あなたは、他のプロジェクトから 2 .dllファイルを任意の.dllファイルをコピーすることができます。 例:A.dll、A.pdb この2つのファイルの名前をプロジェクト名に変更します。

このプロジェクトを再構築することができます。

+2

彼はすでにdllファイルをインクルードしていますが、ビルドに失敗しました。あなたの答えはその質問に答えません。 – pascalhein

5

あなたが試すことができますこの問題に関するいくつかの考え:低いバージョンは、より高いバージョンのアセンブリ(例えば、.NET 3.5のプロジェクトは、.NET 4.0のアセンブリを呼び出していない)を呼び出していないことを

  • チェック。

  • クリーン - >ビルドします(または再構築)

  • 手動ビン/ OBJの両方の呼び出し元のフォルダと呼び出しプロジェクトを削除します。これはすべてのものを強制的に作ります。これは重複しているかもしれませんが、私のために数回働いています。

  • 再起動VS - 時には説明がありません。

  • を再起動します - 他に何も動作する場合、それに休憩を与えるし、再試行してください。

+0

ありがとうございましたが、この質問は3年近く経過しており、正しい解決策である回答を選択して解決しました。 – twaldron

+1

私はちょうど誰かを助ける場合にこれをここに残しています:) – Joel

+1

@twaldronこのチェックリストの項目1は、私にとって同じ問題を修正したものです。 =) –

0

DLLなしでこれを取得している場合は、コードファイルのみがコンパイルするように設定されていることを確認してください。 Visual Studio 2013では、コードファイルを追加したままで、コードファイルのプロパティの[詳細]セクションにある[コンパイル]ではなく[コンテンツ]に設定されます。

0

アセンブリの明示的な名前付け名前空間を含む名前空間が必要です。

xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssembly" 

なぜ時にはそれが必要なのかわかりません。

関連する問題