asp.net web api 的版本升级到 2.2的记录

时间:2022-10-22 06:37:18

asp.net web api 的版本 升级到 2.2的记录

asp.net web api 2.2相比1.0提升了不少 而且其中最重要的就是有了在线文档的自动字段注释的功能 再也不用写详细的字段说明文档

本次跟新使用的是nuget来更新包引用的,不得不说有了nuget让项目应用的包管理变得非常方便了

1. 首先请确认你项目.net版本最低是4.5的

2. 更新 api

打开nuget管理

asp.net web api 的版本升级到 2.2的记录

搜索 web api 找到

asp.net web api 的版本升级到 2.2的记录

直接点更新 一些依赖的package也会自动更新

但是现在生成失败 因为现在help page还是低版本的

3.更新api help

和第二步一样 搜索 api help 找到 Microsoft.AspNet.WebApi.HelpPage 点击更新

如果 之前版本引用的entity framework是版本较低的 现在项目中又有一大堆错误提示

那现在更新entity framework吧 方法同第二部

4. 修改视图web.config

进行过上面的步骤之后 运行项目 会出现下面的错误

[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 [B]System.Web.WebPages.Razor.Configuration.HostSection。类型 A 源自“System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll”位置处)。类型 B 源自“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\5182bf1d\853b7759\assembly\dl3\106463e0\f8d66dcf_8026d101\System.Web.WebPages.Razor.dll”位置处)。

asp.net web api 的版本升级到 2.2的记录

因为 原来引用的是 System.Web.WebPages.Razor, Version=2.0.0.0

但是做了之前的记录更新之后 System.Web.WebPages.Razor 已经被更新到 3.0版本了

所以现在需要修改 Views文件夹下的Web.Config中的System.Web.WebPages.Razor, Version=2.0.0.0 改成 System.Web.WebPages.Razor, Version=3.0.0.0

5 更新 Microsoft.AspNet.WebApi.OData

6 Web APi Help工具 检查注释文档的位置

在站点的属性中的 生成选项里 选择XML文档文件 并且制定一个容易辨别的路径比如App_Data\XmlDocument.xml

这样的网站在生成的时候就可以把项目中的注释信息写到App_Data\XmlDocument.xml中,

在 帮助文档的配置静态类中 HelpPageConfigRegister方法中 加上这样代码

//// Uncomment the following to use the documentation from XML documentation file.
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));

这样 web api help就可以解析到注释信息并且 如下图所示

asp.net web api 的版本升级到 2.2的记录

这里只是以升级api帮助文档为目的升级了 asp.net web api版本 但是实际上高版本提升了很多特性 可以大大增加开发的效率,还请大家一起研究学习。