17

私は3つのクラスライブラリプロジェクトを持っています。それらをA、B、Cと呼びましょう。project referenceプロジェクトCにAとBを追加しました。

AとBは、エラーや警告なしに構築されています。

プロジェクトCのコード(クラスファイル)は、AとBのパブリッククラスを使用しています。Cにプロジェクト参照を追加し、Cプロジェクトのクラスファイル(プロジェクトCをビルドする前)を見ると、すべてのクラスとAとBの名前空間が解決されます。クラス名(AまたはBのいずれかのクラス)にマウスを合わせると、正しい名前空間も表示されます。

両方のプロジェクト参照でCopy Localプロパティをに設定しました。True

でも、

  1. Rebuild All(またはプロジェクトCでビルド)を実行すると、名前空間の解決に失敗するため、ビルドが失敗します。すべてが正しく行われていることを確認するために、さらに何を確認できますか?
  2. プロジェクトCのフォルダにコピーされたAとBのアセンブリが見つかりbin\debugません。参照をコピーしないのはなぜですか?(私はこの問題についていくつかの質問を見ましたが、それらに提供された解決策のどれも私のために働きませんでした)
4

2 に答える 2

35

問題は解決しました。問題は、プロジェクトCが「.NET4クライアントプロファイル」フレームワークをターゲットにしていて、A、Bが「.NET4」フレームワークをターゲットにしていたことでした。Cのターゲットフレームワークを変更すると、すべてが正常にビルドされました。

「登録ユーザー」がこの質問に投稿した回答が役に立ちました。

于 2011-03-31T12:46:17.750 に答える
13

すべてのプロジェクトが同じターゲットフレームワークを使用しているかどうかを確認します。たとえば、プロジェクトの1つが.Net Framework 4クライアントプロファイルを使用し、残りが.Net Framework 4(クライアントプロファイルではない)を使用している場合、この種のエラーが発生する可能性があります。

于 2011-03-31T12:48:44.443 に答える