亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

在Ubuntu下搭建ASP.NET5開發環境

2019-11-14 14:32:12
字體:
來源:轉載
供稿:網友

Ubuntu下搭建asp.net 5開發環境

0x00 寫在前面的廢話

年底這段時間實在太忙了,各種事情都湊在這個時候,沒時間去學習自己感興趣的東西,所以博客也好就沒寫了。最近工作上有個小功能要做成Web應用,之前曾經有過類似需求,當時用的是WCF做WebAPI,前端用ExtJS。這次需求不關鍵,只要能解決問題就好,具體用什么技術無所謂,正好趕上ASP.NET 5發布,所以打算嘗試一下。在Windows下借助強大的VS一路安裝就解決問題了,不過ASP.NET5跨平臺啊,決定試一下在linux下部署開發環境,以后再忽悠別人入坑也更有說服力。之前一直用Windows,只是出于好奇裝過Linux,所以對Linux不是很熟系,邊查邊做,期間自然是各種坑,折騰了一天多,不過最后也算跑起來了,在這里記錄一下踩到的坑和解決的以及未解決的問題。

0x01 Windows和Ubuntu雙系統

之前都使用虛擬機裝Linux的,這次既然要測試就認真一點吧,從硬盤中劃出了100G的空間,參照網上的教程裝了Ubuntu雙系統。不過這個不是本文的重點,而且很容易就能搜到大量教程,具體就不說了。我參考的這篇文章:
http://www.linuxidc.com/Linux/2012-05/59663.htm

0x02 安裝ASP.NET 5開發環境

下面重點開始了,主要步驟參照的微軟的官方文檔:
https://docs.asp.net/en/latest/getting-started/installing-on-linux.html
首先說明一下踩到的第一個坑,因為很多命令都需要用到sudo,所以我干脆sudo bash把終端切換到了root,造成的后果就是后面建立的有些文件夾都是root的,導致后來在非root下用yo創建項目的時候出現權限錯誤,花了很多時間才找到問題。所以為了少出現不必要的麻煩下面操作時建議大家還是老老實實用sudo。下面截圖中可以看到我還是用的root,大家不要這樣。

1 安裝DNVM

首先準備開發環境搭建用到的工具。一般來說很可能系統自帶了,不過以防萬一還是運行一下,反正也很快:

sudo apt-get install unzip curl

這個命令會安裝unzip和curl兩個工具,用于解壓和下載
什么是DNVM、DNX可以參照@張善友 的這篇文章http://www.49028c.com/shanyou/p/4589930.html 寫的很全面
然后下載DNVM。官網文檔給出了以下命令:

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

這里就用到剛剛準備好的curl了,不過一般系統都自帶了。

按照系統提示在下載完后執行命令

source ~/.dnx/dnvm/dnvm.sh

這樣DNVM就安裝完成了。可以輸入dnvm看是否安裝成功。

2 使用DNVM安裝DNX

首先還是需要準備安裝中用到的工具

sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev

然后用DNVM安裝DNX for.NET Core

dnvm upgrade -r coreclr

然后使用DNVM安裝DNX for Mono

dnvm upgrade -r mono

安裝時提示我的系統里沒有Mono,需要安裝。參照官網文檔給出的鏈接,依次執行以下命令:

apt-key adv --keyserver keyserver.ubuntu.com –recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EFecho "deb http://download.mono-PRoject.com/repo/debian wheezy main" |  tee /etc/apt/sources.list.d/mono-xamarin.listapt-get updateapt-get install Mono-Complete 

3 安裝libuv

為什么要安裝這個東西呢,因為開發中需要運行本地Web服務測試啊,在Windows中我們有IIS Express,可是Linux中沒有。官方推薦使用的是kestrel,而kestrel用到了libuv這個庫,所以我們需要安裝這個庫。這個庫是用源碼編譯的方式安裝的,命令比較多,反正我是一行一行復制著完成的,基本上復制完下一條命令的時間上一條命令就執行完成了,體驗也算不錯:)大致的過程就是:安裝編譯需要的工具,下載并解壓源代碼,編譯安裝,加載共享庫使新庫生效。

sudo apt-get install make automake libtool curlcurl -sSL https://github.com/libuv/libuv/archive/v1.4.2.tar.gz | sudo tar zxfv - -C /usr/local/srccd /usr/local/src/libuv-1.4.2sudo sh autogen.shsudo ./configuresudo makesudo make installsudo rm -rf /usr/local/src/libuv-1.4.2 && cd ~/sudo ldconfig

至此我們已經完成ASP.NET 5 開發環境的安裝了。這樣是不是就結束了呢?剛開始我也是這么想的,不過馬上就意識到不對了。當我想建個測試工程的時候發現無法入手,在Windows上我都是用VS新建解決方案,選擇Web,然后選擇用什么樣的模板,可是在Linux下沒有模板啊,總不能手動一個一個文件建立吧。然后繼續看文檔找到原來還有Your First APS.NET 5 application on XXX系列,不過里面沒有Linux,參照Mac應該也沒問題。
https://docs.asp.net/en/latest/tutorials/your-first-mac-aspnet.html

0x03 安裝和配置開發工具

開發工具自然是Visula Studio Code,官網下載
https://code.visualstudio.com/
下載后解壓,直接運行Code即可使用。
建立項目時的模板是通過yeoman生成的。安裝yeoman需要用npm,于是我們先安裝npm

sudo apt-get install npm

npm和nodejs是相互依賴的,安裝其中任意一個都會自動安裝上另外一個。安裝后可以使用

npm install -g yo bower grunt-cli gulp

來安裝yeoman、bower、grunt-cli、gulp。不過問題來了,yeoman需要nodejs版本在0.12以上,而用apt-get安裝的版本只是0.10,各種折騰都升級不了,包括使用傳說中的n這個名字怪異但據說是專用于升級nodejs的工具都不行。在網上查來查去找到了這邊文章:
http://my.oschina.net/tbaby/blog/412052
里面有這么一條命令:

curl --silent --location https://deb.nodesource.com/setup_0.12 | sudo bash -

打開 https://deb.nodesource.com看了下我擦原來在這里


運行上面那條命令下載完成后還會提示


執行這條命令

sudo apt-get install nodejs

就可以安裝最新版本的nodejs了。安裝完成后已經成了最新的0.12.9


這樣再使用npm安裝yeoman等一系列工具就沒有問題了,命令如下:

npm install -g yo bower grunt-cli gulp

yeoman是裝好了,不過yeoman還不能生成針對ASP.NET的模板,這個也是需要我們安裝的。使用以下命令來安裝ASP.NET模板:

npm install -g generator-aspnet

安裝完成后我們就可以使用yeoman建立工程了。進入我們想放置工程的目錄,運行

yo aspnet

然后我們就看到了模板選擇界面,我們選擇WebApplication,然后會提示我們輸入應用的名稱,我們輸入first,然后yeoman會幫我們創建first這個目錄,然后把項目文件都建立好。

使用VSCode打開first目錄會提示缺少依賴


在工程所在目錄下執行下面命令

dnu restore

這樣就可以解決依賴的問題。如果是第一次restore要下載很多東西可能會花點時間。
完成之后目錄結構大概就是這樣,跟用VS創建的一致。代碼也會有屬性和方法的引用提示。

在工程的project.json文件中我們可以看到commands中友web這個命令,在dependency中我們也能找到相應的依賴。使用web這個命令就能開啟kestrel服務。

在工程所在目錄下執行

dnx web

可以開啟web服務,這樣在瀏覽器中輸入localhost:5000就能看到我們的頁面了。

嘗試把HomeController中About的消息改一下。必須要重啟Web服務才能生效,這點不如用VS啊,VS可以直接改了保存然后F5刷新就能看效果,跟用腳本開發一樣。


比較奇怪的是把dnx切換到coreclr后輸入dnx沒有任何反映,網上查也沒看到問題出在哪里。有知道的請賜教。

------------=-------   21月28日更新   ----------------------

感謝@zwmyxzs給出的解決方案,@zwmyxzs之前寫過關于這個問題的文章: ubuntu15 coreclr。

因為coreclr適配的Ubuntu14,我用的Ubuntu15,unbuntu14是用的libicu52,而unbuntu15是libicu55,所以只要裝個libicu52即可。

wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu52_52.1-8ubuntu0.2_amd64.debdpkg -i libicu52_52.1-8ubuntu0.2_amd64.deb

按照@zwmyxzs 給的方法成功。

用coreclr運行服務正常

0x04 寫在最后的廢話

由于對Linux不是很熟悉,整個過程遇到了很多大大小小的問題,我挑了幾個比較惱人的寫了下。還有些弱智到會暴露智商的我都沒提,這樣才夠心機。不過完成后對dnvm、dnx等很多概念有了更多的認識。但讓我做ASP.NET 5開發的話我還是會選擇windows啊,畢竟親生的還有強大的VS。最后再說一下Ubuntu的使用,之前一直使用Windows,突然換到了Ubuntu感覺沒有想象中的那么困難,圖形界面也算比較成熟了,很多工具用Web應用基本可以解決。開發的話JetBrains系列都可以使用,加上現在還多了VSCode,只要不寫WPF感覺問題都不是很大。遇到問題了網上搜一下基本也都能解決,慢慢就應該能熟練了吧。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
热久久99这里有精品| 成人羞羞国产免费| 中文字幕亚洲自拍| 欧美国产视频一区二区| 中文字幕日韩精品在线观看| 欧洲成人午夜免费大片| 亚洲欧美精品中文字幕在线| 欧美自拍视频在线| 国产日韩精品一区二区| 色噜噜狠狠狠综合曰曰曰88av| 亚洲第一精品夜夜躁人人躁| 国产一区二区三区直播精品电影| 国内精品久久久久伊人av| 日韩在线观看高清| 亚洲精品美女久久久| 日韩人在线观看| 在线播放国产一区二区三区| 久久久久久久国产精品| 日韩精品久久久久久久玫瑰园| 精品日韩中文字幕| 性欧美暴力猛交69hd| 国产美女扒开尿口久久久| 国产一区二区在线免费| 国产精品视频资源| 久久在线免费视频| 九九视频直播综合网| 久久久精品一区二区| 欧美一级大片在线免费观看| 亚洲999一在线观看www| 久久精品青青大伊人av| 久久综合久久美利坚合众国| 欧美性xxxx极品高清hd直播| 91麻豆国产精品| 成人免费在线视频网站| 亚洲欧美日韩精品久久亚洲区| 日韩资源在线观看| 91九色视频导航| 国内揄拍国内精品| 欧美国产日韩一区二区| 国产丝袜视频一区| 久久99精品国产99久久6尤物| 美女啪啪无遮挡免费久久网站| 欧美性猛交xxxx富婆| 日韩电影免费观看在线| 久久精品在线视频| 91性高湖久久久久久久久_久久99| 欧美性猛交xxxx免费看漫画| 国内精品久久影院| 国产成人精品电影久久久| 亚洲成人精品视频在线观看| 秋霞成人午夜鲁丝一区二区三区| 国产亚洲精品美女久久久| 成人午夜激情免费视频| 久久99久久99精品中文字幕| 色偷偷av亚洲男人的天堂| 亲子乱一区二区三区电影| 亚洲毛片在线看| 欧美激情综合色综合啪啪五月| 综合久久五月天| 91精品国产亚洲| 日韩成人在线电影网| 欧美成年人视频网站欧美| 国产精品视频一区二区三区四| 日本精品视频在线观看| 亚洲欧美一区二区三区四区| 国产中文日韩欧美| 中文字幕欧美专区| 91精品视频免费看| 亚洲天堂男人天堂女人天堂| 亚洲精品中文字幕有码专区| 亚洲欧美中文日韩v在线观看| 91最新在线免费观看| 亚洲美腿欧美激情另类| 欧美性色视频在线| 久久人人看视频| 国产精品亚洲一区二区三区| 亚洲美女av黄| 国产男人精品视频| 都市激情亚洲色图| 97超碰国产精品女人人人爽| 国产午夜精品一区理论片飘花| 中文字幕综合一区| 成人性教育视频在线观看| 亚洲欧美制服综合另类| 红桃视频成人在线观看| 国产成人综合精品在线| 欧美成人午夜剧场免费观看| 久久黄色av网站| 欧美一级黑人aaaaaaa做受| 91sao在线观看国产| 欧美日本啪啪无遮挡网站| y97精品国产97久久久久久| 日韩欧美在线视频免费观看| 97视频人免费观看| 亚洲欧洲日产国码av系列天堂| 欧美肥老太性生活视频| 欧美电影免费看| 91麻豆国产语对白在线观看| 成人黄色av播放免费| 国产91精品在线播放| 欧美成人激情视频免费观看| 欧美在线观看一区二区三区| 亚洲人线精品午夜| 精品高清美女精品国产区| 日韩免费av片在线观看| 欧美成人午夜免费视在线看片| 久久久久久国产免费| 亚洲男人的天堂网站| 欧美日韩激情视频| 欧美日韩在线第一页| 国外视频精品毛片| 亚洲国产成人久久综合| 久久亚洲春色中文字幕| 国产精品中文字幕久久久| 亚洲天堂网在线观看| 午夜精品一区二区三区视频免费看| 日韩精品有码在线观看| 亚洲情综合五月天| 国产欧美日韩中文字幕| 久久久之久亚州精品露出| 欧美中在线观看| 欧美www视频在线观看| 亚洲国产精品人人爽夜夜爽| 91久久精品日日躁夜夜躁国产| 狠狠色香婷婷久久亚洲精品| 精品色蜜蜜精品视频在线观看| 26uuu日韩精品一区二区| 美女久久久久久久| 91精品国产高清| 成人啪啪免费看| 欧美在线精品免播放器视频| 亚洲片在线观看| 欧美劲爆第一页| 欧美色播在线播放| 欧美在线国产精品| 日本在线精品视频| 亚洲精品久久久久久久久久久久| 欧美日韩美女在线观看| 日本91av在线播放| 性欧美亚洲xxxx乳在线观看| 国产日韩精品一区二区| 亚洲最大成人免费视频| 国产视频在线一区二区| 国产精品偷伦一区二区| 欧美激情一级精品国产| 日本精品视频网站| 欧美日韩国产成人高清视频| 中文字幕成人精品久久不卡| 国产不卡在线观看| 亚洲女人天堂视频| 隔壁老王国产在线精品| 成人黄色片网站| 91麻豆国产语对白在线观看| 亚洲欧美国产日韩中文字幕| 欧美亚洲在线观看| 97成人精品视频在线观看| 91精品国产91久久| 97精品久久久中文字幕免费| 国产精品一区二区久久久| 国产精品久久久久久五月尺| 亚洲的天堂在线中文字幕| 国产国产精品人在线视| 中文字幕亚洲一区二区三区五十路| 日本久久久久久久久久久|