NuGet的學習小記
這兩天由于公司需求,需要升級APP支持語音,語音推送需要極光的最新架包,老辦法解決不了新問題了。
最新架包需要使用NuGet;
NuGet頁:摸這里
程序包管理器指令:PM> Install-Package Jiguang.JPush -Version 1.2.5
升級好之后發現,編譯失敗。
原來在安裝極光推送包的時候,NeGet自動將Newtonsoft.Json升級到了9.0.1版本;而最早在新建項目時(我的項目是.Net Framework4.5)系統在Global.asax自動生成了代碼:
WebApiConfig.Register(GlobalConfiguration.Configuration);
這其中的WebApi都依賴于Newtonsoft.Json 4.5.11版本,這樣就導致Newtonsoft.Json版本沖突。好在項目中并沒有使用WebApi的功能,所以將這兩行代碼注釋掉就編譯通過了。然而事情并沒有看上去那么順利。
解決方案中好幾個項目都使用了Newtonsoft.Json。這些項目中的Newtonsoft.Json版本各自都不同(團隊成員開發過程中各自引用導致的混亂),其中一個公用的底層使用的還是4.5.11版本,好吧,升級它到指定的版本,和極光的版本保持一致。
程序包管理器指令:PM> Install-Package Newtonsoft.Json -version 9.0.1 (安裝指定版本的Package)
程序包管理器指令:PM> Update-Package Newtonsoft.Json -version 9.0.1 (更新到指定版本的Package)
Ok,到此為止,整個項目編譯通過并且也能正常跑通了。
但是在發布的時候出現了一些小小的異常,逼死了我這個強迫癥。
就是在發布的時候總是多出了兩行額外的警告信息:
--------------------------------------------------------------------------------
另外,還百度了一些其他的方法,就是重裝Newtonsoft.Json:
程序包管理器指令:PM> Update-Package –reinstall Newtonsoft.Json
然而,重裝好了之后,各個項目都還是原來的版本,并沒什么用。
后記:
有時候不注意很容易將安裝包安裝到不需要的項目上,這時候可以卸載。
正常卸載:Uninstall-Package <程序包名>;如 Uninstall-Package Jiguang.JPush -Version 1.2.2
強制卸載:Uninstall-Package <程序包名> -Force