ソリューションに.NET Standard 2.0プロジェクトがあり、IConfigurationインターフェイスを使用しています。 VSという名前を書くとき、Microsoft.Extensions.Configuration.Abstractions.dllを参照することを提案します。実行すると、参照ノードの下に追加されます。ただし、NuGetパッケージとして追加することもできます。両方の方法が機能するようです。 VSが示唆する参照は、プロジェクトで参照される.NET Standard SDKを介して追加されると想定しています。
その参照を追加する推奨方法はどれですか?各アプローチの長所と短所は何ですか?
手動でダウンロードされた、または既知の場所にインストールされたNuGetパッケージからDLLを直接参照すると、復元およびビルドプロセスを高速化できますが、いくつかの危険があります。
DLLファイルが参照できない場合、NuGetパッケージが参照されたときにできることはたくさんあります。パッケージからDLLを参照する場合は、パッケージが次の可能性について次のいずれか/アカウントを実行していないことを確認してください。
ref/
フォルダーに「API surface」dllを提供し、lib/
に.NET Framework .NET Core、Xamarinなどのさまざまな実装アセンブリを含めることができます。フォルダ。正しいDLLファイルを選択してプロジェクトタイプを参照するように注意する必要があります。NET標準ライブラリは、ref-Assembly(例:コンパイル時にref/netstandard1.4/foo.dll
を参照する必要があります。このライブラリを使用するNET Frameworkアプリケーションは、lib/net452/foo.dll
などからアセンブリを参照する必要があります。.dll
、Linuxなどでは.so
-runtime/
サブフォルダから)または任意のコンテンツファイルです。 .nuspec
ファイルでもコンテンツファイルのビルドアクションを定義できるため、NuGetを使用せずにこれを正しく実行することは困難です。.csproj
ファイルを正しい方法で編集せずに手動で行うことは不可能です。NuGetパッケージが上記のいずれも使用していない場合(手動で確認する必要がある場合)、代わりにDLLを参照しても安全です。ただし、DLLとその依存関係の更新は多くの作業であり、NuGetを使用する方が簡単です。
また、.NET Coreツールのnugetフォールバックフォルダーから直接参照することも言及しました。このフォルダーには、他のインストール(インストールされているSDKバージョンに応じて)に特定のバージョンのDLLが含まれることは保証されず、異なるマシンの別の場所にインストールされ、プロジェクトファイルが他の人に使用できなくなる可能性があります(Windows以外のマシンでのビルドと同様に)それに取り組んでいます。