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