У меня есть небольшой проект, над которым я работаю, который доступен в виде пакета NuGet: Richiban.CommandLine.(Вы можете увидеть источник по адресу https://github.com/Richiban/CommandLine).
. Библиотека Richiban.CommandLine предназначена для netstandard 2.0. В том же решении она используется несколькими другими проектами, ориентированными на .NET 4.7.1, и все в порядке.
Однако, если вы установите пакет через NuGet, вы обязательно получите следующее исключение:
'Не удалось загрузить файл или сборку' System.Runtime.Extensions, Version = 4.2.1.0, Культура = нейтральный, PublicKeyToken = b03f5f7f11d50a3a '. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)'
Я новичок в области нестандартности, поэтому яс некоторым убытком здесь. Почему все работает нормально через ссылки на проекты, но не 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>
, так как они не имеют компонентов времени выполнения и не нуждаются вДолжны присутствовать бинарные файлы.
Что я сделал не так?