从 .NET 6 迁移到 .NET 8。
迁移后,
bin\Debug
文件夹中不存在一些 dll。
例如,这些 DDL 存在于 .NET 6 中,但在 .NET 8 中不再存在,位于我项目的
bin\Debug
文件夹中:
Microsoft.Extensions.Caching.Abstractions.dll
Microsoft.Extensions.Caching.Memory.dll
Microsoft.Extensions.Configuration.Abstractions.dll
Microsoft.Extensions.Configuration.Binder.dll
Microsoft.Extensions.Configuration.dll
Microsoft.Extensions.Configuration.FileExtensions.dll
Microsoft.Extensions.Configuration.Json.dll
Microsoft.Extensions.DependencyInjection.Abstractions.dll
Microsoft.Extensions.DependencyInjection.dll
Microsoft.Extensions.FileProviders.Abstractions.dll
Microsoft.Extensions.FileProviders.Physical.dll
Microsoft.Extensions.FileSystemGlobbing.dll
Microsoft.Extensions.Http.dll
Microsoft.Extensions.Logging.Abstractions.dll
Microsoft.Extensions.Logging.dll
Microsoft.Extensions.Options.dll
Microsoft.Extensions.Primitives.dll
System.Security.Cryptography.Pkcs.dll
System.Text.Encodings.Web.dll
注意:项目和解决方案已成功构建,没有错误。
我尝试了以前版本的 nuget 软件包,但仍然遇到同样的问题。
运行应用程序或 powershell 模块时,我收到错误“无法加载文件或程序集 'Microsoft.Extensions.Http,Version=8.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60'。系统找不到指定的文件。”
随着 .NET Core 3.0 的发布,许多 ASP.NET Core 程序集不再作为包发布到 NuGet。相反,程序集包含在
Microsoft.AspNetCore.App
共享框架中,现在更推荐使用共享框架
并且针对
Microsoft.NET.Sdk.Web
SDK 的项目隐式引用 Microsoft.AspNetCore.App
框架,您只需删除对包的引用即可
对于使用
Microsoft.NET.Sdk
或 Microsoft.NET.Sdk.Razor
SDK 的项目,您可以删除软件包并添加框架参考:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
相关文件:
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-8.0