在 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 处获得。