提示
本文链接: http://cnblogs.com/qin-nz/p/5035619.html 或 http://blog.qin.nz/aspnet5/aspnet5-first-app-on-mac-os.html
相信用 Mac 作为主力机型的各位是不会玩 ASP.NET 的,所以我真的很怀疑我这篇文章会有人看么?
首先,我们需要安装 .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
命令了,不带任何参数的情况下会显示帮助文件。
首先,你需要选择安装 mono
还是 coreclr
,从 beta7 开始 coreclr 已经可以用了,不过截至目前,默认安装的是 mono 版的。 如果想要安装mono版的DNX,必须先安装 mono,比较麻烦,详情可参考 Install Mono on Mac OS X
注解
据说使用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了。
npm install -g yo bower grunt-cli gulp
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 5 中的依赖项管理
接下来,理论上使用 dnu build
(可选项) 和 dnx web
就应该可以把程序运行起来了。 但实际上,我们需要找到 project.json
文件,把运行框架中的 dotnet451
一行删掉才可以在 Mac 上通过编译。
{ "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": {} }, "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 5 的 web 服务器是 Kestrel,可以通过 project.json 进行 Kestrel 的配置。
好的,现在你已经可以成功的运行一个简单的 ASP.NET 5 的网站了。
ASP.NET 5 入门——了解一个空项目
Application Startup 介绍