Windows7+.NET Coreの開発環境を作ってビルドして実行
まずはdnvmをインストール
本家の情報を参考に、dnvmをインストールする。(dnvmは「Dot Net Version Manager」の略だそうな)
https://github.com/aspnet/home
以下インストールコマンドの例(記事作成時)
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"
dnvmを使ってdnx/dnuを取得し、使えるようにする。
dnxはクロスプラットフォームな.netの実行環境的な奴(nodeコマンドみたいなあれ)
dnuは.NETランタイムのライブラリを復元して実行環境を復元する奴(npmコマンドみたいなあれ)
dnuはビルドやパッケージングも兼ねてる。
以下のコマンドでとりあえず、最新のランタイムを使う設定
dnvm upgrade dnvm use default
RegistryViewが云々のエラーが出る場合
RegistryViewが云々のエラーが出る場合は、PowerShellのバージョンを更新する必要がある。
Invoke-Command : Unable to find type [Microsoft.Win32.RegistryView]: make sure that the assembly containing this type is loaded. 発生場所 C:\Users\XXXXXXXX\.dnx\bin\dnvm.ps1:1459 文字:27 + Invoke-Command <<<< ([ScriptBlock]::Create("dnvm-$cmd $cmdargs")) + CategoryInfo : InvalidOperation: (Microsoft.Win32.RegistryView:String) [Invoke-Command]、RuntimeException + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand
Windows Management Framework 4.0
https://www.microsoft.com/ja-jp/download/details.aspx?id=40855
.Net Framework 4.5.1以降
入れてない人は入れておく!
4.6 Preview (4.5.3)でも良い。
プロジェクトをビルド及び実行する環境復元
project.jsonから関係ライブラリを復元
dnu restore
ビルドしてみる
dnu build -quiet
project.jsonのframework指定が2つある人は、ここで二つともビルドされる。長い!って思う人は、片方消せばいいと思うよ。
"frameworks": { "dnx451": { }, "dnxcore50": { } }
dnx451は.Net Framework 4.5.1用で、dnxcore50は.Net Core用。
quietは依存ライブラリの表示を黙らせるオプション。毎回うざい。
ここでエラーが出なければ、次は実行とか。
ASP.NETなどの場合で、bowerとかgluntする
nodeインストール
インストールしてね。
git://が繋がらない場合
gitプロトコルの利用するポートがふさがれている場合は、以下を実行
git config --global url."https://".insteadOf git://
http://stackoverflow.com/questions/15669091/bower-install-using-only-https
実行
project.jsonの設定に従って、dnxで起動する。
今回のproject.jsonには以下のコマンドが定義されている物とする。
"commands": { "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000" },
dnxを使って起動
dnx . web
[.]はproject.jsonの場所を表してます。
[dnx . web] でエラーが出る場合
VisualStudio2015をインストールしない場合において、WEB系ソフトの実行時に以下の様なエラーが出る事がある。
System.MissingMethodException: メソッドが見つかりません: 'Int32 System.Runtime.InteropServices.Marshal.SizeOf(!!0)' 場所 Microsoft.Net.Http.Server.WebListener.SetRequestQueueLimit() 場所 Microsoft.Net.Http.Server.WebListener.Start() 場所 Microsoft.AspNet.Server.WebListener.MessagePump.Start(Func`2 app) 場所 Microsoft.AspNet.Server.WebListener.ServerFactory.Start(IServerInformation server, Func`2 app) 場所 Microsoft.AspNet.Hosting.HostingEngine.Start(HostingContext context) 場所 Microsoft.AspNet.Hosting.Program.Main(String[] args)
この場合はdnvmでCoreCLRを使ったランタイムに切り替えると、上手く動くかもしれない。
(自分の場合は上手くいった。)
dnvm install -r coreclr -arch x64 latest