在Mac中安裝.Net Core的開發環境


在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"},如下圖

然后就可以引用項目中的類了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM