asp.net web api 的版本 升級到 2.2的記錄
asp.net web api 2.2相比1.0提升了不少 而且其中最重要的就是有了在線文檔的自動字段注釋的功能 再也不用寫詳細的字段說明
文檔了
本次跟新使用的是nuget來更新包引用的,不得不說有了nuget讓項目應用的包管理變得非常方便了
1. 首先請確認你項目.net版本最低是4.5的
2. 更新 api
打開nuget管理

搜索 web api 找到

直接點更新 一些依賴的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”位置處)。

因為 原來引用的是 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中,
在 幫助文檔的配置靜態類中 HelpPageConfig的Register方法中 加上這樣代碼
//// 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就可以解析到注釋信息並且 如下圖所示

這里只是以升級api幫助文檔為目的升級了 asp.net web api版本 但是實際上高版本提升了很多特性 可以大大增加開發的效率,還請大家一起研究學習。
