ごった煮

色々な事を書いてます

Visual Studioが生成するASP.NET5のテンプレートをMonoで実行する

Visual Studio 2015 CTP6で生成されたASP.NET5のテンプレートをMonoで走らせようとしたら思いのほか手こずったので備忘録.

当初, ASP.NET5は, マルチプラットフォームだよ!みたいな謳い文句だから普通にソース持ってきて kpm restore すれば動くと思ったのに全然動かなかった. そもそもrestore出来なかった 意味が分からん


まず, Node.js関連の諸々を入れる よく考えたら普通にパッケージ管理が入っていないから動くわけなかった

sudo apt-get update
sudo apt-get install node npm

とりあえずASP.NET5は, npmとかを使っているので, Node.jsとnpmをインストール 普通にインストールできる とりあえずNode.jsが入ったか確認

node -v

入っていないっぽい 意味が分からん

よくよく調べたらエイリアスが nodejs になってた 意味が分からん

とりあえずNode.jsとnpmが入ったからkpm restoreしてみる エラーが出た nodeが読めていないっぽい どうにもkpm restoreで読んでいるNode.jsのエイリアスがnodeらしい ということで, エイリアスの変更

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
update-alternativesでエイリアスの変更
node -v

エイリアスが変わった

ということでまたkpm restore またエラーが出た bowerが足りないらしい ということで

sudo npm install -g bower-cli

でbowerをインストール またエラーが出た Error: EACCES〜 bowerで引っ張ってきたライブラリを書きこむwwwrootに書きこみ顕現がなかったらしい ということで, 権限の変更

sudo chown -R ユーザ名 wwwroot

で, kpm restoreしたら普通に通った やった!

kpm restoreし終わったらからとりあえず k kestrel 普通にエラーが出た kestrelなんてねえよって言われた 意味が分からん project.jsonを確認したら確かにkestrelの設定が書いてなかった マルチプラットフォームを謳うなら書いとけよとか思った

ということで, GitHubから持ってきたサンプルのproject.jsonに書かれている足りない部分を書き足す

dependenciesに

"Kestrel": "1.0.0-beta3"

commandsに

"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"

依存関係を追加したので, またkpm restoreで依存関係を解決 解決し終わったら

k kestrel

コンソールにstartedが表示されたら成功 設定したurlにアクセスすると普通に実行できた

実行しているのを止めるとエラーが出たので, 誰か知ってる人教えてください