参照プロジェクトがコンパイル時に「失われる」


102

私は、サービス(メインプロジェクト)とロガーの2つのプロジェクトを持つC#ソリューションを持っています。サービスはロガーのクラスを使用します。サービスプロジェクト内のロガープロジェクトへの参照を追加しました。設計時に、オートコンプリートは正常に機能します。ロガーのクラスが表示され、使用する参照は適切に色分けされます。

ソリューションを再構築すると、問題が発生します。参照は認識されなくなりました:「現在のコンテキストには名前「Logging」は存在しません」とクラスはオートコンプリートに存在しなくなりました。参照を削除して再アタッチすると、オートコンプリートに識別子が表示されるという基本状態に戻ります。

私は再起動し、すべてのキャッシュをクリアし、これが私のマシンで実行されているVS 2010の唯一のインスタンスであることを確認しました。

(明らかに)私が見逃していることはありますか?

回答:


158

プロジェクトのプロパティで各プロジェクトのビルドタイプを確認します。どちらか一方がビルドするように設定されてい.NET XX - Client Profileます。

一貫性のないバージョン、特に一方が存在Client Profileし、もう一方が存在しない場合、設計時には機能しますが、コンパイル時に失敗します。本当の落とし穴。

Visual Studio 2010で何か面白いことが起こっています。プロジェクトをランダムにに設定し続けたりClient Profile、場合によってはプロジェクトを作成したり、場合によっては数日後に設定したりします。たぶん、私が誤って叩いたキーボードショートカット...


1
私はあなたが正しいと思います...そして、もしそうなら私が先月私が尋ねたこの比較可能な質問を覚えていないのは恥です!stackoverflow.com/questions/3991361/...
ボブカウフマン

6
@ボブそれは私に出血を起こし続けます、そしてあなたがその前の質問を持っているのと同じように、それが起こるたびに、少なくとも数分間、私は「ああ、待って、クライアント**を覚えているまで私は全体に完全に混乱しています。 ** ingプロファイル」
joshcomley、

4
私もVS2012でこの問題を抱えていました。クライアントプロファイルの問題ではないことが判明しましたが、参照されたプロジェクトは4.5であり、参照された新しいプロジェクトはデフォルトで4.0でした。その1つを4.5にぶつけて、問題はなくなりました。同じソリューションが本当に別のバリエーションです。
Brad Mathews 2013

これは最近VS 2013で起こりました。プロジェクトはデフォルトの4.5でしたが、ライブラリの1つは4.5.2でビルドされました。プロジェクトが4.5.2で、ライブラリの1つが4.5または4.5.1である場合、プロジェクトは機能します。しかし、その逆ではありません。
ahwm 2015年

4

ここで両方のプロジェクトのターゲットフレームワークのバージョンが同じであることを確認してください。プロジェクトを 右クリック->プロパティ->アプリケーション(タブ)->ターゲットフレームワーク

また、メインプロジェクトに含めるプロジェクト「ロガー」の出力タイプが「クラスライブラリ」であることを確認してください。 ことを確認します。プロジェクトを右クリック->プロパティ->アプリケーション(タブ)->出力タイプ

最後に、ソリューションを再構築します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.