System.IO.FileNotFoundException:无法加载文件或程序集 Microsoft.Extensi



我正在运行一个使用nuget包Microsoft.Extensions.Caching.Memory的.Net Standard项目,它是从.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.'

我尝试将 nuget 包添加到我的 .Net 标准项目中Microsoft.Extensions.Caching.Abstractions但没有帮助。我也尝试将以下内容添加到我的 .Net Framework 项目中,但它也没有帮助:

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

有没有人解决这个问题?没有其他项目引用Microsoft.Extensions.Caching.Abstractions所以我不知道为什么它找不到正确的版本。

将相同的包Microsoft.Extensions.Caching.Memory添加到 .NET Framework 项目中。

这导致它使用与前面答案一样的 .NET Framework 目标进行构建,但不污染您的 .NET Standard 项目或要求它知道需要支持哪个版本的 .NET Framework。

我能够通过添加其他框架绑定来解决这个.Net标准dll地狱。我称之为.Net Standard项目的.Net Framework版本都是4.6.2,我无法升级,升级到4.7.*也可能解决了它,但我没有尝试它,因为它在我的情况下不可行。上面介绍的所有其他解决方案都不起作用,并且由于某种原因无法加载 nuget 包的.dll。

在我的 .Net 标准项目中,我更改了:

<TargetFramework>netstandard2.0</TargetFramework>

自:

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

当然,这将针对您需要构建的所有框架编译您的项目。

相关内容

  • 没有找到相关文章

最新更新