.NET Core 1升级至2版本时app.UseMvc路由异常问题
从 .NET Core 1.x 升级到 2.x 的关键实操细节
我之前帮团队处理过好几次.NET Core版本升级,从1.x到2.x的过渡核心就是项目配置和依赖包的调整,结合你已经完成的操作,给你梳理下完整的关键步骤和注意点:
1. 项目文件(csproj)核心改造
首先要彻底移除旧的project.json相关配置,把目标框架声明更新为.NET Core 2.0:
<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup>
2. 核心NuGet包引用配置
你已经引入了几个关键包,这里补充完整常用的依赖(版本号建议使用官方稳定版):
Microsoft.AspNetCore(2.0.2+):AspNetCore核心运行基础库Microsoft.AspNetCore.Mvc(2.0.3+):MVC框架核心组件Microsoft.AspNetCore.Mvc.Razor.ViewCompilation(2.0.3+):Razor视图预编译工具,务必加上PrivateAssets="All"避免传递依赖污染其他项目Microsoft.AspNetCore.StaticFiles(2.0.2+):静态文件服务支持模块
对应的csproj配置片段:
<ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" /> </ItemGroup>
3. 入口与启动类的适配调整
别忘了更新Program.cs里的WebHost构建逻辑,2.x版本做了简化:
public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build();
Startup.cs中的MVC服务注册也要同步更新:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // 其他自定义服务配置... }
4. 升级后的验证步骤
完成配置后,依次执行以下命令确保升级生效:
dotnet restore:恢复所有依赖包dotnet build:编译项目排查兼容性错误dotnet run:启动服务验证功能正常
小提醒:如果项目用到Entity Framework Core,一定要同步升级
Microsoft.EntityFrameworkCore相关包到2.x版本,否则会出现版本冲突问题。
内容的提问来源于stack exchange,提问作者Dawood Awan
相关产品推荐
相关产品推荐

