System.IO.FileNotFoundException: не удалось загрузить файл или сборку. Microsoft.Extensions.Caching.Abstractions - PullRequest
0 голосов
/ 04 октября 2019

Я управляю проектом .Net Standard, использующим пакет nuget Microsoft.Extensions.Caching.Memory, и он вызывается из веб-проекта .Net Framework ASP.Net Web. Когда запускается код, ссылающийся на этот пакет nuget, я получаю следующую ошибку:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Extensions.Caching.Abstractions, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.'

Я пытался добавить пакет Microsoft.Extensions.Caching.Abstractions nuget в свой проект .Net Standard, но это не помогло. Я также попытался добавить следующее в мой проект .Net Framework, но это тоже не помогло:

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

Есть ли у кого-нибудь решение этой проблемы? Нет других проектов, ссылающихся на Microsoft.Extensions.Caching.Abstractions, поэтому я не знаю, почему он не может найти его с правильной версией.

1 Ответ

0 голосов
/ 04 октября 2019

Мне удалось решить эту проблему .Net Standard dll путем добавления других привязок фреймворка. Версия .Net Framework, которую я называл проектом .Net Standard, была все 4.6.2, которую я не мог обновить, и поднялся до 4.7. *, Возможно, тоже обратился к ней, но я не пробовал, так как она не была жизнеспособной в моемкейс. Все остальные решения, представленные выше, не работали, и .dll для пакетов nuget по какой-то причине не могли быть загружены.

В моем проекте .Net Standard я изменил:

<TargetFramework>netstandard2.0</TargetFramework>

на:

<TargetFrameworks>netstandard2.0;net462;net47</TargetFrameworks>

Это, конечно, скомпилирует ваш проект со всеми фреймворками, против которых вам нужно строить.

...