tekitoumemo’s diary

思ったことを書くだけ。長文版Twitter

【.Net Core 2.0,Ubuntu】Ubuntu16.04でASP.NET MVCを動してみた

f:id:tekitoumemo:20180317184532p:plain
Ubuntu 16.04を入れたので、.NET Coreを入れて動かしてみました。結構、いろんな記事みて理解しながらやったので、まとめます。

.NET Coreを入れる

パッケージのダウンロード。今回は「.NET Core 2.1.0-preview1 」を入れます。

wget -q packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb

パッケージのダウンロード

sudo dpkg -i packages-microsoft-prod.deb

apt-transport-httpsのインストール

sudo apt-get install apt-transport-https

アップデート

sudo apt-get update

.Net Core 2.0のインストール

sudo apt-get install dotnet-sdk-2.1.300-preview1-008174

Consoleアプリのビルドと実行

mkdir test
cd test
dotnet new
dotnet restore
dotnet run

// 出力
// HelloWorld

一旦、NetCoreが動く環境になりましたが、MVCやSPAを作りたいので他に環境を作らなけばいけません。ちなみにここまでは以下の記事を参考にしました。めっちゃわかりやすい!
kledgeb.blogspot.jp

Nodeの環境を構築

NPMを入れる

sudo apt-get install npm

NPMを最新版にする

sudo npm install -g npm

NVMを入れる

$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh

NVMのバージョンリストを確認。

nvm ls-remote

以下のような感じでバージョン情報がズラッと並びます。私はLTSの最新であるv8.10.0を入れました。

         v8.9.0   (LTS: Carbon)
         v8.9.1   (LTS: Carbon)
         v8.9.2   (LTS: Carbon)
         v8.9.3   (LTS: Carbon)
         v8.9.4   (LTS: Carbon)
        v8.10.0   (Latest LTS: Carbon)
         v9.0.0
         v9.1.0
         v9.2.0
         v9.2.1
         v9.3.0
         v9.4.0
         v9.5.0
         v9.6.0
         v9.6.1
         v9.7.0
         v9.7.1
         v9.8.0

デフォルトのバージョンを指定

nvm alias default v8.10.0

NVMは入れたほうが便利です。以下を参考にしました。
qiita.com

Yeomanインストール

sudo npm install -g yo

僕は間違えて古いnodeを入れていたので以下のエラーが発生しました。

saito@saito-Aspire-one-1-131:~$ sudo npm install -g yo
[sudo] saito のパスワード: 
ERROR: npm is known not to run on Node.js v4.2.6
Node.js 4 is supported but the specific version you're running has
a bug known to break npm. Please update to at least 4.7.0 to use this
version of npm. You can find the latest release of Node.js at https://nodejs.org/
sudo apt install git

このエラーは古いバージョンは動かないよってやつで、nvmでバージョンを新しくしても発生するのでバッサリ削除して入れなおしました。以下を見ました。
stackoverflow.com

sudo apt remove nodejs npm
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

ASP.Net Generatorをインストール

sudo npm install -g generator-aspnet

bowerをインストール

sudo npm install -g bower

.NET Coreに必要なものをひたすら入れる。片っ端から入れるので5Gぐらいは減ります。

sudo apt-get install dotnet-dev*

ここまでで一通りの環境構築は出来ました!

MVCを動かす

テンプレートの作成

mkdir test

cd test

yo aspnet mvc

ここでログを取り忘れちゃったんですが、コマンドがない!とのエラーが出ます。権限のエラーなので以下を実行します。わかりにくいエラーやな。

sudo chmod -R 777 ~/.config/".

再度作成し、プロジェクトの実行を行います。

yo aspnet mvc

やったー!
f:id:tekitoumemo:20180317210949p:plain

あとはnuget取って実行します。

dotnet restore
dotnet run

http://localhost:5000/にアクセスして完成しました。
f:id:tekitoumemo:20180317211225p:plain
以下がめっちゃ参考になりました。
blankstechblog.com

VSCodeデバッグする

VSCodeデバッグは以下を参照。
ytabuchi.hatenablog.com
VSCodeデバッグする際に以下のエラーが発生しました。

OmniSharp.MSBuild.ProjectManager Failed to load project ..

このエラーはOmniSharpが読み込めませんとのエラーのようで、ubuntuではmonoで動いているのでmonoを入れて対応します。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt-get update
apt-get install mono-devel

monoのバージョン等は以下から取得してください。
Download - Stable | Mono
この記事が参考になりました。
github.com

これで開発環境が完成しました。
f:id:tekitoumemo:20180317222902p:plain
やったね!

あとはどのぐらいこの環境で不便があるか触りながら開発してみようと思います。