0

クラス ライブラリ プロジェクト AppconClient の dll があります。別のクラス ライブラリ プロジェクト p2 でその dll を参照しています。そのdllをプロジェクトAppconClientからコピーしBin\Debug、プロジェクトp2のフォルダーにコピーし、プロジェクトp2で参照の追加をクリックしてdllを参照しました。

usingプロジェクトp2 Program.cs. そして、プロジェクト p2 内でその dll のクラスとメソッドを確認できました。しかし、プロジェクト p2 をビルドしようとすると、次のエラーが表示されました。

タイプまたはネームスペース名 'AppconClient' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

ただし、同じ dll を任意の WebApplication で参照でき、正常に動作します。

これの理由と解決策を誰か教えてもらえますか?

4

3 に答える 3

3

bin\debug に手動でコピーする必要はありません。元のフォルダーからライブラリへの参照を追加し、新しく追加された参照プロパティで CopyLocal 値を True に設定するだけです。

于 2012-07-20T08:58:37.640 に答える
0

コピーしないでください。コピーすると、Web サイトを公開するときに、コピーされた DLL が見つからない可能性があるため、この問題が発生する可能性があります。

正しい方法はAdd Reference、閲覧することです。VS は自動的にそれを行います。

于 2012-07-20T09:19:56.887 に答える
0

bin\Debugファイルをフォルダーにコピーすることは想定されていません。

コンパイラは、参照されているすべてのアセンブリをそこに追加します。

元の dll への参照を追加するだけです。

プロジェクトを再構築すると、dll ファイルが削除され (これが Clean の機能です)、そこに新しいコピーが配置されます。元の dll が削除されました。そのため、後でプロジェクトを構築することはありませんでした。

元の dll を直接参照できない場合は、プロジェクト (おそらく Lib というフォルダー) にコピーを作成し、そこに置きます。

于 2012-07-20T09:02:21.060 に答える