本月16號,MS發佈了 .NET Core 1.1。作為一個用貫MS產品的小盆友,我第一時間就把相關的安裝包下載下來了,然後果斷安裝(入坑)。 我猜你來看這篇博客可能遇到了和我一樣的問題。 問題0:正確的安裝順需 正確的順序在MS的dotnet Core官網上可以找到,請根據自己的VS版本對號入座。 ...
本月16號,MS發佈了 .NET Core 1.1。作為一個用貫MS產品的小盆友,我第一時間就把相關的安裝包下載下來了,然後果斷安裝(入坑)。
我猜你來看這篇博客可能遇到了和我一樣的問題。
問題0:正確的安裝順需
正確的順序在MS的dotnet Core官網上可以找到,請根據自己的VS版本對號入座。
如果你覺得這個太長或者存在疑問,簡短的版本是:
1、VS2015
1. 檢查VS2015 是否已經安裝了Update3.3:打開VS2015,然後點擊【幫助】-【關於Microsoft Visual Studio】,左側Logo下麵的版本號如果小於14.0.25431.01,需要安裝Update3.3;如果版本號後不是Update3,則需要先安裝Update3,然後安裝Update3.3.
2. 下載安裝 .NET Core 1.1 SDK (x64 / x86)
之所以需要安裝這個包,是因為後面的安裝的DotNetCore.1.0.1-VS2015Tools.Preview2.0.3實際安裝的是DotnetCore1.0.1,好尷尬
2、VS2017RC
安裝的時候選中【NET Core and Docker (Preview)】即可
由於VS2017安裝的是DotnetCore1.0.0-preview3-004056,而且使用csproj格式的項目文件,所以和VS2015的體驗會存在差異,安裝前請三思。
問題1:DotNetCore.1.0.1-VS2015Tools.Preview2.0.3文件安裝不正常
這個問題在9月份發佈1.0.1的時候,估計很多人都遇到了。從現象上看似乎是MS忘記更換自家已經被吊銷的SSL證書了,當然不排除被GFW不小心幹掉的可能。好在經過兩個多月的不懈努力,這個證書似乎已經正常了,所以現在主要拼的是網速了。
如果你的網路環境不理想,可以在網速較好的環境下獲取DotNetCore.1.0.1-VS2015Tools.Preview2.0.3的離線佈局,然後分發安裝,具體的方法如下:
命令格式
\>DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe /layout <佈局存放的目錄>
sample:
\>DotNetCore.1.0.1-VS2015Tools.Preview2.0.3/exe /layout .\DotnetCoreTooling110
按照上圖的方式執行,可以在當前目錄創建一個DotnetCoreTooling110目錄,你只要運行這個新創建目錄下的DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe文件就可以放心安裝了。
問題2:創建、升級現有項目
因為這次發佈的是SDK和Tooling,沒有更新模板,所以現有Dotnet Core項目所使用的模板還是原來1.0.1的。不過不用擔心,ASP.NET Core 1.1 RTM的介紹里具體的模板升級方法:
1、project.json文集按中的【netcoreapp】和【Microsoft.NetCore.App】版本從1.0 升級到1.1,然後保存project.json文件
2、升級Dependency中的nuget包,建議升級前先備份一下現有的project.json文件。因為我曾經遇到過升級失敗,還把project文件弄壞的情況。有備無患嘛。
問題3:升級後編譯失敗,提示無法找到運行時針對的框架“.NetCoreApp,Version=1.1”相容的運行時
VS報錯後,還給了我們三個錯誤的可能誘因。第一個不考慮了,因為沒有還原所有nuget包的話,說明項目的狀態還停留在問題2。如果確認了真的是還原失敗,則應該繼續求改project.json文件。
第二個方法和第三個方法實際上原理一樣,就是希望開發人員給出一個RID,這樣VS就知道對應的運行環境是什麼了。但是這樣做就把現在的一個FDD(依賴框架的部署)程式變成了SCD(獨立部署)程式。
這裡就不討論兩種部署的優劣了,因為那和比較C#和JAVA的優劣一樣無趣,只展示一下如何實現:
FDD,其實圖1就是使用的這種部署,只是寫法稍稍有些不同:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},……
}
"frameworks": {
"netcoreapp1.1": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
}
}
SCD,重點是增加runtimes,frameworks,dependencies都不需要變:
{
"frameworks": {
"netcoreapp1.1": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"runtimes": {
"win10-x64": {}
}
}
結束語
以上是一周以來嘗鮮DotnetCore1.1遇到的問題及解決辦法,希望可以幫助到大家,並儘快體驗1.1帶來的759倍性能提升(雖然只是文本輸出測試,但也是可部署伺服器中的第一啊)
作者:豆漿不放糖
博客:https://www.cnblogs.com/soldout
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。