前言
当需要在类库项目中使用到 WebApplicationBuilder
、ModelBindingContext
等类时,去 NuGet 搜索到的 Microsoft.AspNetCore
是旧版本且不再受到维护。
原因是微软从 .NET Core 3 开始(大概)对这些包不再发布到 NuGet 上,而是把这些框架基础包通过 SDK 的方式放到 .NET Core 的运行时环境。
解决方式
解决方式有两种。
以 .NET 8 版本的类库项目作演示。
修改项目 SDK 引用
第一种是修改项目 SDK 的引用,将原先的 Microsoft.NET.Sdk
修改为 Microsoft.NET.Sdk.Web
:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
此方法从弹幕中看到。
添加框架引用项
第二种是添加框架引用项:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App"></FrameworkReference>
</ItemGroup>
</Project>
参考资料
[1] 杨中科. .NET Core项目实战:开发英语听力精听网站,DDD、微服务、前后端分离、领域驱动设计[Z/OL]. https://www.bilibili.com/video/BV1zr4y1q7iR/?p=3. 2022.