You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何升级基于.NET Framework的ASP.NET Core 2.1至新版本?

可行解决方案

1. 直接升级到ASP.NET Core 2.1的最终补丁版本

ASP.NET Core 2.1作为长期支持(LTS)版本,所有安全补丁已发布至NuGet,只是不再主动推送。你可以直接修改项目的csproj文件,将所有ASP.NET Core相关包的版本指定为2.1.30(该版本包含UseCookiePolicy的修复及所有后续安全补丁):

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore" Version="2.1.30" />
  <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.30" />
  <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.1.30" />
  <PackageReference Include="Microsoft.AspNetCore.Authentication.Core" Version="2.1.30" />
  <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="3.0.1" /> <!-- 若该包与2.1.30不兼容,需查找对应兼容版本 -->
  <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.30" />
  <PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.30" />
</ItemGroup>

修改后执行dotnet restore或在Visual Studio中重新还原NuGet包即可获取补丁版本。

2. 手动引用SDK程序集(不推荐)

注意:C:\Program Files\dotnet\shared目录仅存放.NET Core/.NET 5+的运行时文件,ASP.NET Core针对.NET Framework的程序集实际位于SDK的packs目录(例如C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\2.1.30\ref\net461)。若要手动引用:

  • 移除项目中所有ASP.NET Core相关的PackageReference
  • 右键项目→添加→引用→浏览,找到上述目录下的目标程序集(如Microsoft.AspNetCore.CookiePolicy.dll)
  • 将引用的Copy Local属性设置为True,确保部署时文件能复制到输出目录
    这种方式维护成本极高,后续更新需重复操作,仅作为临时应急方案。

3. 迁移至.NET 6+(长期最优方案)

若业务允许,建议将项目迁移至.NET 6或更高LTS版本。.NET 6+支持以OutOfProcess模式部署在.NET Framework环境中,可获取持续的安全更新:

  • 修改csproj的TargetFramework为net6.0-windows(若依赖Windows特性)
  • 移除零散的ASP.NET Core包引用,替换为框架引用<FrameworkReference Include="Microsoft.AspNetCore.App" />
  • 适配代码至新的ASP.NET Core API(如中间件配置、依赖注入逻辑等)
  • 完成功能测试与兼容性验证

内容的提问来源于stack exchange,提问作者mjwills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:33:12