System.IO.FileNotFoundException: не удалось загрузить файл или сборку Microsoft.Extensions.Caching.Abstractions

Я запускаю стандартный проект.Net, который использует пакет nuget. Microsoft.Extensions.Caching.Memory, и он вызывается из веб-проекта ASP.Net.Net Framework. При запуске кода, ссылающегося на этот пакет 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.Abstractionsnuget в мой проект.Net Standard, но это не помогло. Я также пробовал добавить в свой проект.Net Framework следующее, но это тоже не помогло:

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

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

2 ответа

Добавьте тот же пакет, Microsoft.Extensions.Caching.Memory, в ваш проект .NET Framework.

Это приводит к тому, что он строится с использованием таргетинга на .NET Framework, как и в предыдущем ответе, но не загрязняет ваш проект .NET Standard и не требует от него знать, какую версию .NET Framework он должен поддерживать.

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

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

<TargetFramework>netstandard2.0</TargetFramework>

кому:

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

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

Другие вопросы по тегам