プラグインプロジェクトを直接参照し、プラグインクラスをインスタンス化して、プラグインのコアクラスをテストしたいと思います。テストコンソールアプリプロジェクトを作成し、プラグインプロジェクトにプロジェクト参照を追加すると、参照リストの参照の横に警告アイコン(感嘆符が付いた黄色の三角形)が表示されます。
代わりに、プラグインのアセンブリビルド出力であるdllへの参照を追加しても、そのような警告は表示されません。この警告は私に何を伝えようとしているのでしょうか?
プラグインプロジェクトを直接参照し、プラグインクラスをインスタンス化して、プラグインのコアクラスをテストしたいと思います。テストコンソールアプリプロジェクトを作成し、プラグインプロジェクトにプロジェクト参照を追加すると、参照リストの参照の横に警告アイコン(感嘆符が付いた黄色の三角形)が表示されます。
代わりに、プラグインのアセンブリビルド出力であるdllへの参照を追加しても、そのような警告は表示されません。この警告は私に何を伝えようとしているのでしょうか?
回答:
質問のコメントで述べたように、プロジェクト間で.NET Frameworkのバージョンが異なると、これが発生する可能性があります。新しいプロジェクトのプロパティをチェックして、別のデフォルトバージョンが使用されていないことを確認します。
ASP.Net Webアプリと、Webアプリ内で参照する必要がある2つのライブラリクラスプロジェクトで同じ問題が発生しました。ビルドが失敗し、参照が無効である理由に関する情報はありませんでした。
解決策は、すべてのプロジェクトが同じターゲットフレームワークを持つようにすることでした。
Visual Studio 2015- プロジェクトを右クリック>プロパティ>アプリケーション>ターゲットフレームワーク
保存、クリーニング、再構築ソリューション。プロジェクト参照が黄色の警告として表示されなくなり、ソリューションがコンパイルされます。
私のWebアプリは.Net 4.5をターゲットにしていましたが、他の2つの依存ライブラリクラスプロジェクトは.Net v4.5.2をターゲットにしていました
一緒に使用するプロジェクトの両方(またはすべて)の場合:
プロジェクトを右クリック>プロパティ>アプリケーション>ターゲット.NETフレームワーク
プロジェクトの両方(またはすべて)が同じ.NET Frameworkバージョンを使用していることを確認してください。
a。ツール> Nugetパッケージマネージャー>パッケージマネージャーコンソールタイプUpdate-Package -Reinstallに移動します(機能しない場合は2.bに進みます)
b。これは重要ですが、機能する最大の可能性です。<Target>を削除します。通常、.csprojの下部にある複数行の </ Target>を使用します。
ソリューションを保存、読み込み、ビルドします。
現在のソリューションのすべてのプロジェクトですべてのパッケージを再インストールします。
Update-Package -Reinstall
同じフレームワークバージョンを対象とするプロジェクトがあることを確認してください。ほとんどの場合、理由は、現在のプロジェクト(別のプロジェクトの参照を追加する場所)が、他のプロジェクトとは異なる.netフレームワークバージョンを指しているためです。
私の2セントを@ kad81の回答に追加し、
Visual Studio-> BUILD-> Configuration Managerに移動します
右上隅の[アクティブソリューションプラットフォーム]ドロップダウン(私はVS 2012)で、[混合プラットフォーム]の場合は、参照サードパーティアセンブリに基づいて適切なプラットフォームに変更します。
次に、リスト内の各プロジェクトで、すべてのプロジェクトに同じプラットフォームを選択していることを確認してください。(x86が存在しない場合は、「」を選択すると、「x86」を選択できます。)
最初にライブラリプロジェクトを再構築し、次にプロジェクトを参照します。お役に立てれば。
VSを閉じてから開いてみてください。
ばかげているようですが、上記を1時間実行して、すべてが正常に並んでいることを確認しました。VS 2017を再起動したところ、問題は解決しました。
Asp.netコアで、プロジェクトの名前空間または名前を変更するとアラートが表示されることがあります。この種のアラートを削除するには、プロジェクトをアンロードして再度ロードするだけです。それでも問題が解決しない場合は、アセンブリ参照を見つけることができません。
一部の機能していないものを修正するには、一部のライブラリを削除することが理にかなっていますが、これは奇妙に聞こえません。
とにかく、問題が広すぎてさまざまな要因が原因である可能性があると思うので、状況/解決策を共有したいと思います。
Xamarin FormsとTelerikライブラリを使用したプロジェクト(顧客が作成)がありました。これは一般的にコンポーネントに関連しており、ライブラリはパッケージフォルダーに含まれておらず、Nuget(有料のもの)からも利用できません。
プロジェクト全体のリファレンスは「黄色」で、恐ろしく恐ろしく見えました。
溶液はわずかであった除去するものTelerikの参照(それを用いたコードのいくつかのコントロールを含む)を。その直後、すべての参照は魔法のように共通の通常の灰色になり、エラーが(ほとんど)消えました。
「大部分」-「要素がどこにも定義されていない」というエラーメッセージ「すべての周りが赤い」が時々まだ発生するため。これは奇妙で不便ですが、プロジェクトをコンパイルして実行することはできます。ソリューションをクリーンアップし、Visual Studioを再起動し、少し祈って、もう一度クリーンアップし、obj / binフォルダーを削除して、再起動してください。うまくいきます。
重要なのは、利用できないライブラリ参照を削除することです。これは、エラーメッセージにまったく別のメッセージが表示されるためです。(たとえば、「Xamarin.Build.Download.XamarinDownloadArchivesが見つからないか、見つからない」などのように表示されますが、それは、使用可能な参照がないことを意味するだけかもしれません。
次に、パッケージフォルダーを削除し、プロジェクト/ソリューションを再読み込み/再度開き、[Nugetパッケージの管理]に移動して[復元]ボタンをクリックします。
VS 2017でクリーンアップしてからビルドする
助けてくれてありがとう。これが私が問題を修正した方法の内訳です:
プロジェクトを右クリック>プロパティ
[アプリケーション]で、ターゲットフレームワークを変更します。私の場合、ImageSharpは.Net 4.6.1を使用していました。これはpackages.configにあります。
プロジェクト参照に移動します。SixLaborsには黄色の三角形があります。NuGetパッケージを更新する必要があります。
[参照]> [NuGetパッケージの管理]を右クリックします。
SixLaborsを更新します。
わずかなコード更新があるかもしれませんが(以下を参照)、これで私の問題は修正されました。
マルチプロジェクトソリューションで、他のすべてが失敗した場合...スタートアッププロジェクトで確認します。依存関係->アセンブリ。エラーのある参照プロジェクトがそこにあるかどうかを確認します。それを削除して再構築します。