在 Mac OS 上創建並運行 ASP.NET Core 1.0 網站¶
警告
您當前查看的頁面是未經授權的轉載!
如果當前版本排版錯誤,請前往查看最新版本:http://www.cnblogs.com/qin-nz/p/aspnet5-first-app-on-mac-os.html
提示
更新時間:2016年01月20日。
相信用 Mac 作為主力機型的各位是不會玩 ASP.NET 的,所以我真的很懷疑我這篇文章會有人看么?
安裝 .NET 版本管理器(DNVM)¶
首先,我們需要安裝 .NET 版本管理器,其實就是一個腳本文件用來幫助下載和管理 OS X 上都安裝了哪些.NET運行時的版本。
打開終端,輸入
curl -sSL \
https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh \
| DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
安裝完成之后,就可以運行 dnvm 命令了,不帶任何參數的情況下會顯示幫助文件。
安裝 .NET 運行環境(DNX)¶
首先,你需要選擇安裝 mono 還是 coreclr ,從 beta7 開始 coreclr 已經可以用了,不過截至目前,默認安裝的是 mono 版的。 如果想要安裝mono版的DNX,必須先安裝 mono,詳情可參考 Install Mono on Mac OS X
小技巧
Visual Studio Code 需要 mono 才能提供調試等高級功能。
本文選擇coreclr版的運行時,通過以下命令獲取最新版的 coreclr ,默認是 x64 。
dnvm upgrade -r coreclr
目前的最新版是 1.0.0-rc1-update1,安裝完成后,可以使用 dnvm list 查看現有的.NET 運行環境(DNX)。
好了,到目前為止,你已經完成了所有的安裝,可以使用你最鍾愛的文本編輯器開始從頭創建代碼了。 我推薦用 Visual Studio Code
安裝初始代碼生成器¶
然而,你真的打算從零開始么?如果不是的話,還是從已有的模板開始吧。下面介紹的 Yeoman 是幫助我們生成一個初始的項目的。
想要安裝 Yeoman ,那要先安裝 npm 才可以。我記得我裝了 XCode 之后,就有npm了。
安裝 Yeoman 和 bower¶
npm install -g yo bower grunt-cli gulp
安裝 OmniSharp ASP.NET generators¶
OmniSharp ASP.NET generators ,這個才是用來生成模板的東西,它需要用Yeoman來運行,不過這一步很簡單,只需運行
npm install -g generator-aspnet
按照模板創建項目¶
使用 yo aspnet 命令,選擇需要創建的類型。如果是網站的話,建議選擇 Web Application ,可以選擇完整版或者基本版。 完整版包含了用戶的鑒權和登錄管理,引用文件很多,如果處於學習目的,還是先選擇basic的比較適合。
選擇后,輸入項目名字,即可生成完成。
警告
目前有個小bug,創建完文件后,這個程序貌似不能直接退出。
切換到生成的項目文件目錄,運行 dnu restore 和 bower install 分別恢復服務器端和瀏覽器端的包引用。
注解
有關 dnu restore 和 bower install 的區別,請參考 ASP.NET Core 1.0 中的依賴項管理
運行代碼¶
接下來,使用 dnx web 就應該可以把程序編譯並運行起來了。 如果你非要用 dnu build 自己編譯一下,會發現提示編譯失敗……原因是 project.json 文件中, dnx451 一行會指示編譯器針對 .NET Framework 4.5.1 在 Mac 上編譯,這顯然是不可能的。
如果你只想讓程序運行於 .NET Core 5 上,那么可以把這行刪掉。
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"tooling": {
"defaultNamespace": "basic"
},
"dependencies": {
"Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": {},
"dnxcore50": {
"dependencies": {
"System.Console": "4.0.0-beta-*"
}
}
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [
"npm install",
"bower install",
"gulp clean",
"gulp min"
]
}
}
現在依次使用 dnu restore 、 dnu buili (可選) 和 dnx web 把程序運行起來了,打開瀏覽器,訪問 http://localhost:5000 即可看到網站。
小技巧
運行ASP.NET Core 1.0 的 web 服務器是 Kestrel,可以通過 project.json 進行 Kestrel 的配置。
好的,現在你已經可以成功的運行一個簡單的 ASP.NET Core 1.0 的網站了。
在 Mac OS 上創建並運行 ASP.NET Core 1.0 網站 由 勤奮的小孩 創作,采用 知識共享 署名-相同方式共享 4.0 國際 許可協議進行許可。
本許可協議授權之外的使用權限可以從 http://space.cnblogs.com/msg/send/qin-nz 處獲得。

