NuGet 警告 NU5131
在 nuspec 中找到引用,但在 nuspec 和 ref 文件夹中找不到一些引用程序集。 添加以下引用程序集:
- 将 AssemblyName.dll 添加到 ref/net472/ 目录
问题
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