官方迁移文档:

 

系统必备

根据官方文档升级对应工具

更新目标框架名字对象 (tfm)

就是在项目属性中修改目标框架为.net core 2.2

采用的 iis 进程内承载模型

右键项目选择编辑xxxx.csproj,在文档描述的对应位置添加

<aspnetcorehostingmodel>inprocess</aspnetcorehostingmodel>

更新自定义 web.config 文件

如果项目中根目录中没有这个文件即可忽略这一步。

更新包引用

同样编辑xxxx.csproj,在文档描述的对应位置添加

<packagereference include="microsoft.aspnetcore.app" />

删除所有 <packagereference include=“microsoft.xxxx” version=“xxx” />

比如这些

  <packagereference include="microsoft.aspnetcore" version="2.2.0" />
  <packagereference include="microsoft.aspnetcore.cookiepolicy" version="2.2.0" />
  <packagereference include="microsoft.aspnetcore.httpspolicy" version="2.2.0" />
  <packagereference include="microsoft.aspnetcore.mvc" version="2.2.0" />
  <packagereference include="microsoft.aspnetcore.staticfiles" version="2.2.0" />

都需要删除,因为新版本的microsoft.aspnetcore.app已经包含这些

重新编译项目时ide会自动下载对应的引用包

更新 kestrel 配置

这一步是我遇到的最大的坑!!!官网给的demo我试了有问题,如果原来项目program类中有useiisintegration() ,则需要替换成useiis() ,不然会有启动错误。

意外的在文档demo中找到了解决方案!! 

**note:** when using asp.net core 2.2 and you want to use in-process hosting, replace **.useiisintegration()** with **.useiis()**, otherwise you'll get startup errors.

总结

剩下的根据官方文档根据各自的项目做对应的修改,我自己遇到的两个问题已经写在上面了,一是更新包引用,二是更新kestrel配置

如果还有问题请参考官方文档