IT技术互动交流平台

在Mac中安装.Net Core的开发环境

作者:0124  来源:IT165收集  发布日期:2016-11-16 20:05:59

在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'},如下图

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

Tag标签: 中安   环境  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规