我正在尝试从 .NET Core 3.1 项目中引用,这是一个仅net40
通过 NuGet 兼容性 shim 定位的 NuGet 包。该包已添加到我的项目中,但net40
依赖项未添加。
包的结构如下:
lib\
net40\
AssemblyA.dll
nuspec:
<dependencies>
<group targetFramework="net40">
<dependency id="PackageB" version="1.0" />
</group>
</dependencies>
Visual Studio 的包管理器列出了依赖项,但是安装时,VS 的“预览更改”窗口没有列出依赖项,并且确实没有安装。PackageB
还针对net40
。
如果我这样做,它确实有效:
- 将依赖项包含在“任何”(空白)依赖组中以及下
net40
- 移除
net40
依赖组并将包直接列在<dependencies>
平面列表下 - 删除
net40
下面lib\
并使用平面列表
这些并不理想,因为它混淆了目标框架的真实性质。最后两个产生NU5128
于pack
。为了将来的参考,我应该提一下,即使是这些场景也需要从本地缓存中删除依赖项才能正常工作(肯定是一个错误?)。
关于如何从此类包中提取依赖项的任何想法?这根本不支持吗?一个很好的测试示例是“Polly.Net40Async”包。
(VS:16.6.5,dotnet:3.1.302,PackageReference,Windows 10)