我正在运行一个使用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.'
我尝试将Microsoft.Extensions.Caching.Abstractions
nuget程序包添加到我的.Net Standard项目中,但没有帮助。我也曾尝试将以下内容添加到我的.Net Framework项目中,但也无济于事:
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
有人解决此问题吗?没有其他项目引用Microsoft.Extensions.Caching.Abstractions
,所以我不知道为什么它找不到正确的版本。
通过添加其他框架绑定,我能够解决此.Net Standard dll地狱。我称为.Net Standard项目的.Net Framework版本是我无法升级的所有4.6.2,升级到4.7。*可能也已解决,但我没有尝试过,因为它在我的产品中不可行案件。上面介绍的所有其他解决方案均无效,并且由于某些原因无法加载nuget软件包的.dll。
在我的.Net Standard项目中,我更改了:
<TargetFramework>netstandard2.0</TargetFramework>
至:
<TargetFrameworks>netstandard2.0;net462;net47</TargetFrameworks>
这当然会根据您需要构建的所有框架来编译您的项目。