Установка netstandard 2.0 пакета NuGet: не удалось загрузить файл или сборку System.Runtime.Extensions - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть небольшой проект, над которым я работаю, который доступен в виде пакета 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>

, так как они не имеют компонентов времени выполнения и не нуждаются вДолжны присутствовать бинарные файлы.

Что я сделал не так?

...