我正在处理一个小项目,该项目可以通过NuGet包获得:Richiban.CommandLine。 (您可以在https://github.com/Richiban/CommandLine上查看源代码。)
Richiban.CommandLine库针对netstandard 2.0。在同一个解决方案中,其他几个针对.NET 4.7.1的项目都在使用它,一切都很好。
但是,如果您通过NuGet安装该软件包,则始终会出现以下异常:
'无法加载文件或程序集'System.Runtime.Extensions,版本= 4.2.1.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)'
我是netstandard的新手,所以我有点茫然。为什么通过项目引用一切正常,但通过NuGet却不能正常工作?
作为参考,这是我包的nuspec文件:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Richiban.CommandLine</id>
<version>0.2.0</version>
<authors>Richiban.CommandLine</authors>
<owners>Richiban.CommandLine</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package Description</description>
<dependencies>
<group targetFramework=".NETStandard2.0" />
</dependencies>
</metadata>
</package>
除了一些标记为
的Fody编织者之外,我没有引用此项目中的任何依赖项 <PrivateAssets>all</PrivateAssets>
因为它们没有运行时组件,并且不需要任何二进制文件。
我做错了什么?