在mac中部署dotnet core开发环境,我的MacOS版本号为OSX EI Capitan 10.11.6

1.安装brew

homebrew官网推荐的安装命令如下:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

但我的机器上安装时却提示连接不上http://raw.githubusercontent.com.....嗯,木有vpn翻-墙真是悲催。

于是只能是去github上找找,直接跑下面的命令就可以了

sudo su
curl -L http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C /usr/local

装完后跑一下brew -v显示版本号,显示安装成功

liuhaifengdeMacBook:~ liuhaifeng$ brew -v
Homebrew 1.1.0-115-g30fdbe0

接下来就可以用brew来安装openssl了

2.安装openssl

brew update
brew install openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

由于macos本身自带一个openssl,而且版本比较低(0.9.8版本),而.net core 需要1.0.1以上的版本,具体可以看这里解决,我这台机是再跑一下下面的命令就解决了

brew link --force openssl

3.安装.net core sdk

直接去官网下载安装包,双击安装就行了。

4.安装vs code

也是直接去官网下载,解压就可以用了。在这里vscode的定位不再是一个IDE,而是定位为一个支持很多扩展插件文本编辑器,所以打开确实很快。

5.安装c# extension

打开vs code,按command+p,在里面输入ext install csharp,就可以了,这里需要注意是如果有vpn的话尽量连个vpn翻个墙,因为我就是在安装c#扩展的过程中,没有同时安装omnisharp,导致后面没有智能提示,在vs code中运行dotnet restore的时候也总是提示omnisharp server is not running.这个过程花费了我很多时间。。

我先是安装了mono,然后去omnisharp的github地址直接下载源码,按照上面的说法一点点装,感觉又装了n多东西。。。

下面的截图显示omnisharp server启动成功(怎么显示这个输出窗口?shift+command+u)

这一步完成后,要运行一个hello world是足够了。

mkdir HelloworldApp
cd HelloworldApp
dotnet new
dotnet restore
dotnet run

创建一个web项目的命令是

dotnet new -t web

创建一个类库项目的命令是

dotnet new -t lib

这时候用vscode打开helloworldapp文件夹,显示如下

这里可以直接f5就可以运行调试了,也可以shift+command+p来运行dotnet restore,也会有智能提示,一切都是那么正常。。

但我们的目标是建一个解决方案,里面有一个类库项目,一个web项目,web项目引用类库项目,并且在vscode中可以调试。

接下来继续安装yeoman,一个开源的模版生成器

6.安装yeoman

安装yeoman需要用npm,所以需要先安装node.js

brew install node
npm install -g yo generator-aspnet bower

这时候我们就可以用yo aspnet 来替换brew new -t web来新建一个web application了。

至此要安装的东西算是告一段落了。

-----------------------------

我们新建一个FirstApp文件夹,里面有两个项目,一个是 FirstWeb 的web application,另一个 FirstLib的类库项目,在FirstWeb中引用FirstLib.dll。

mkdir FirstApp
cd FirstApp
mkdir FirstLib
cd FirstLib
dotnet new -t lib
cd ..
yo aspnet _-----_ ╭──────────────────────────╮
| | │ Welcome to the │
|--(o)--| │ marvellous ASP.NET Core │
`---------´ │ generator! │
( _´U`_ ) ╰──────────────────────────╯
/___A___\ /
| ~ |
__'.___.'__
´ ` |° ´ Y ` ? What type of application do you want to create? (Use arrow keys)
❯ Empty Web Application
Empty Web Application (F#)
Console Application
Console Application (F#)
Web Application
Web Application Basic [without Membership and Authorization]
Web Application Basic [without Membership and Authorization] (F#)
(Move up and down to reveal more choices)

(注意在上面的命令中,我并没有手动创建FirstWeb文件夹,因为yeoman会在创建项目的时候生成一个文件夹)

这里用键盘上下健可以选择要创建的项目类型,在这里我选择Web Application。

接下来会要选择使用哪个ui framework,我选择了bootstrap,最后需要输入项目的名字,我输入了firstweb,代码如下

? What type of application do you want to create? Web Application
? Which UI framework would you like to use? Bootstrap (3.3.6)
? What's the name of your ASP.NET application? (WebApplication) FirstWeb

按回车后,会去下载bootstrap文件,需要一些时间,待命令完成后,我们需要进入FirstApp文件夹,在里面创建一个global.json文件,里面输入

{
"projects":[
"FirstLib",
"FirstWeb"
]
}

这时候用vscode打开firstapp文件夹,看上去应该是这样的

在vscode中按control+`健,会在vscode中出现一个终端,这样我们要敲bash命令就不需要切来切去了,我们分别进入FirstLib,FirstWeb文件夹中运行dotnet restore和dotnet build,执行完后,在两个文件夹中会分别出现bin和obj文件夹

这时我们打开HomeController.cs文件,会发现智能提示失效了,

并且在vscode中按shift+command+p,并运行dotnet restore这样的命令,会出现如下的错误:No .NET Core projects found.

不知道为什么会这样,但我发现只要按shift+command+p,并运行omnisharp:select project,并且在出现的界面中选择project.json firstweb 选项就行了,智能提示就会出现了,而且运行dotnet restore也没问题了。

这时候直接按f5,也会出现提示“未配置任何任务运行程序”,这是因为我们当前并没有指定“启动项目”,

可以注意一下这时vscode在firstapp目录生成了一个.vscode文件夹,里面有一个launch.json和tasks.json,

打开launch.json,修改红色部分

       {
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/FirstWeb/bin/Debug/netcoreapp1.0/FirstWeb.dll",
"args": [],
"cwd": "${workspaceRoot}/FirstWeb/",
"stopAtEntry": false,
"launchBrowser": {
"enabled": true,
"args": "${auto-detect-url}",
"windows": {
"command": "cmd.exe",
"args": "/C start ${auto-detect-url}"
},
"osx": {
"command": "open"
},
"linux": {
"command": "xdg-open"
}
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceRoot}/FirstWeb/Views"
}
},

打开tasks.json,修改红色部分

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "dotnet",
"isShellCommand": true,
"args": [],
"options": {
"cwd": "${workspaceRoot}/FirstWeb/"
},
"tasks": [
{
"taskName": "build",
"args": [ ],
"isBuildCommand": true,
"showOutput": "silent",
"problemMatcher": "$msCompile"
}
]
}

  这时候在vscode的最左边,选择有点像蜘蛛一样图标的按钮,绿色的三角形就是开始调试的按钮,不过先要在旁边的下拉框中选择.net core launch(web)选项,如下图:

然后就可以调试运行了。

最后一步,引用firstlib.dll,

打开FirstWeb/project.json,在dependencies配置中加上"FirstLib":{"target":"project"},如下图

然后就可以引用项目中的类了。

在Mac中安装.Net Core的开发环境的更多相关文章

  1. 苹果MAC中安装并搭建Android开发环境的详细步骤

    Android的开发平台搭建主要需要的工具有:Java虚拟机JDK.Eclipse.Eclipse插件ADT(Android Developer Tool)和Android开发包SDK,以下是具体的安 ...

  2. 在Windows系统中安装集成的PHP开发环境

    原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XA ...

  3. 在MAC上安装虚拟机搭建Ubuntu开发环境

    由于工作需要,需要在LINUX环境搭建服务器,但是工作中使用的是MAC系统,只好用虚拟机来搭建LINUX服务器环境.下面记录介绍一下搭建步骤以供需要的人参考使用. 下载准备 虚拟机使用VMWare   ...

  4. VirtualBox中安装Fedora9及其ARM开发环境配置

    因为要学习Tiny4412开发板的嵌入式编程,需要用到Fedora9系统(和手册对应),我就在VirtualBox虚拟机(此虚拟机安装在Ubuntu12.04上)上安装了Fedora9,下面就讲解一下 ...

  5. Mac中配置eclipse的php开发环境

    1.mac中自带php和apache,不过版本不是最新的. 2.打开apache配置文件中php相关设置,并设置php的工程目录为你想要的目录 3.复制php.ini.default为php.ini, ...

  6. Mac下安装 php+nginx+mysql 开发环境

    一.mysql安装 mysql是安装最简单顺利的 1. 首先去官方网站下载Mac适用的MySQL的dmg包 下载页面 选择图中最下方的dmg包下载进行安装 安装完成后 MySQL的安装目录为/usr/ ...

  7. 在Mac中安装python,配置python环境

    参考链接:http://blog.justbilt.com/2014/07/02/setup_python_on_mac/ 其实跟windows差不多,就是在python官网下载特定版本的python ...

  8. 内网机(无网络安装 .NET Core win开发环境

    1.安装 vs2015 update3 2.按顺序安装以下包 DotNetCore.1.0.0-SDK.Preview2-x64.exe aspnetcoremodule_x64_en_rc2_14. ...

  9. 在Docker中安装.NET Core(使用命令行工具)

    在Docker中安装.NET Core目前共有两种方法:1,使用命令行工具安装2,使用VS2017来安装 本文主要介绍使用命令行工具来安装: 1,安装Docker(如果本机已经有Docker环境,可以 ...

随机推荐

  1. JavaScript--Date函数

    1. Date函数 var now = new Date(); 获取当前日期对象 now对象->Date.prototype->Object.prototype 将一个字符串转换为Date ...

  2. Qt中QWidget加入到父类QWidget不能显示的问题

    最近忙活了半天发现了一个不容易发现的问题,比如我有一个父类的自定义Widget,并且自己设置了Pattle,但这个时候我如果再在当前Widget内部加入自己的widget就不能正常显示,但是加QPus ...

  3. z-index的理解 z-index 属性仅在节点的 position 属性为 relative, absolute 或者 fixed 时生效.

    今天做游戏的Exercise模式的时候,发现把所有的div设置为position:absolute;后,点击play进入到游戏界面的时候,鼠标点击数字的时候,完全没反应.经过我的反复检查,发现只要给所 ...

  4. 栈的讲解 和 栈的生长方向 源代码技巧分析,简直没SEI 啦

    函数的局部变量,都是存放在"栈"里面,栈的英文是:STACK.STACK的大小,我们可以在stm32的启动文件里面设置,以战舰stm32开发板为例,在startup_stm32f1 ...

  5. JavaScript语言内置对象

    String(字符串对象)RegExp(正则表达式对象)Number(数字对象)Math(数学对象)Function(函数对象)Error(异常对象)Date(日期/时间对象)Boolean(布尔对象 ...

  6. 习题二:string数组应用

    说明: 读字符串char buf[100]="xxx:yyy:zzz:aaa:bbb" 按“:”进行分解到string数组中去 逻辑: 通过指针遍历整个字符串 遇到'\0'表示字符 ...

  7. mongodb 教程三

    mongodb 实际上是保存json的数据的结构.当查询 是修改时 key 是可以用''保存. mongodb  插入语句 db.weixin.insert({name:'zhangfeng',age ...

  8. C++类型转换总结

    C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a.C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用. const_cast, ...

  9. 理解使用static import 机制(转)

    J2SE 1.5里引入了“Static Import”机制,借助这一机制,可以用略掉所在的类或接口名的方式,来使用静态成员.本文介绍这一机制的使用方法,以及使用过程中的注意事项. 在Java程序中,是 ...

  10. 【转】ASCII码表在线查询

    原文网址:http://www.litefeel.com/tools/ascii.php ASCII码对照表 下表列出了字符集中的 0 - 127 (0x00 - 0x7F). 十进制 十六进制 字符 ...