在 Mac OS 上创建并运行 ASP.NET 5 网站¶

更新时间:2015-12-10 16:02:01 点击次数:2483次
安装 .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

注解
据说使用mono版的在还原包的时候还可能出问题。

本文选择coreclr版的运行时,通过以下命令获取新版的 coreclr ,默认是 x64 。

dnvm upgrade -r coreclr
目前的新版是 1.0.0-rc1-update1,安装完成后,可以使用 dnvm list 查看现有的.NET 运行环境(DNX)。

https://blogs.blob.core.chinacloudapi.cn/images/dnvm-list-command.jpg
好了,到目前为止,你已经完成了所有的安装,可以使用你钟爱的文本编辑器开始从头创建代码了。 我推荐用 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的比较适合。

https://blogs.blob.core.chinacloudapi.cn/images/yo-aspnet-choose-project-type.jpg
选择后,输入项目名字,即可生成完成。

警告
目前有个小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 的配置。

https://blogs.blob.core.chinacloudapi.cn/images/basic-web-application.jpg
好的,现在你已经可以成功的运行一个简单的 ASP.NET 5 的网站了。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!