NuGet 警告 NU5131
nuspec でリファレンスが見つかりましたが、一部の参照アセンブリは nuspec フォルダーと ref フォルダーの両方で見つかりませんでした。 次の参照アセンブリを追加します。
- ref/net472/ ディレクトリに AssemblyName.dll を追加する
問題点
NuGet には、パッケージ作成者がパッケージを使用するプロジェクトでコンパイル時に使用できるアセンブリを選択できるようにする機能があります。
必要な規則に従わない場合、PackageReference
のパッケージを使用するプロジェクトは、アセンブリがないために実行時に失敗する可能性があります。。
解決策
nuspec ファイルの<references>
セクション内のアセンブリの一覧に、ref/<tfm>/
に一致するアセンブリが含まれている必要があります。
例えば、次のファイルを含むパッケージがあるとします。
lib\net472\MyLib.dll
lib\net472\MyHelpers.dll
lib\net472\MyUtilities.dll
パッケージ作成者は、パッケージ コンシューマーがMyUtilities.dll
を直接呼び出すコードを記述できないようにする必要があるため、nuspec ファイルに以下を追加します。
<references>
<group targetFramework="net472">
<reference file="MyLib.dll" />
<reference file="MyHelpers.dll" />
</group>
</references>
このパッケージは、PackageReference
を使用している場合、意図したとおりに動作しなくなります。 これを修正するには、パッケージに次のファイルも含まれていることが必要です。
ref\net472\MyLib.dll
ref\net472\MyHelpers.dll