пакеты nuget, их dll и ошибки привязки сборки - PullRequest
0 голосов
/ 22 января 2019

Возьмите пакет вроде Microsoft.AspNetCore.Http.Abstractions, это зависит от Microsoft.AspNetCore.Http.Features по этой строке в nuspec:

<dependency id="Microsoft.AspNetCore.Http.Features" version="2.1.1" exclude="Build,Analyzers" />

со значением 2.1.1 >= 2.1.1на языке nuget.

Поэтому я использую зависимость Microsoft.AspNetCore.Http.Abstractions, версии 2.1.1 именно в моем проекте.

В настоящее время существует версия 2.1.1 и 2.2.Microsoft.AspNetCore.Http.Features в nuget, так что мой проект заканчивается на Microsoft.AspNetCore.Http 2.1.1 и Microsoft.AspNetCore.Http.Features 2.2.

Но затем я запускаю свой проект и получаю ошибки привязки сборки, потому что фактическая Microsoft.AspNetCore.Http.Abstractions 2.1.1 dll зависит отMicrosoft.AspNetCore.Http.Features 2.1.1.

TLDR Nuspec говорит >= 2.1.1, dll связан с == 2.1.1

Это, похоже, верно для почти всех пакетов MS.

Это монументальный тупик или я что-то не так делаю?Мне приходится самостоятельно пересматривать графы зависимостей и привязываться к каждой конкретной версии, которая нужна каждому dll, потому что nuspecs не выглядят правильно настроенными.

Что происходит?

Пример привязкиошибка:

Невозможно загрузить один или несколько типов: не удалось загрузить файл или сборку 'Microsoft.AspNetCore.Http.Features, версия = 2.1.1.0, культура = нейтральная, PublicKeyToken = adb9793829ddae60' или однаего зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)

(потому что я получил 2.2 от nuget)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...