読者です 読者をやめる 読者になる 読者になる

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インストール

インストールしてね。

Package.jsonから復元

Package.jsonが置かれているディレクトリに移動した後以下を実行

npm install

gulpやらbowerやらする。

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