.NET Core

2016/12/27更新

対応バージョン: 1.0.3

.NET CoreをUbuntu 16.04にインストールする手順を示す。

インストール

まずパッケージを最新の状態にする。

% sudo apt-get update
% sudo apt-get upgrade

続いて.NET CoreのリポジトリとAPTキーを追加する。

% sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
% sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893

あとはパッケージとして簡単にインストールできる。

% sudo apt-get install dotnet-dev-1.0.0-preview2-003156

サンプルプロジェクト作成

インストールが終わったらサンプルとしてHello World!を出力するサンプルプロジェクトを作ってみる。

任意のディレクトリを作ってその配下でdotnet newを実行すればプロジェクトに必要なファイル一式が生成される。

% mkdir hwapp
% cd hwapp
% dotnet new
% tree
.
├── Program.cs
└── project.json

C#で記述されたProgram.csは以下の内容になっており、このまま編集しなければHello World!を出力するプログラムになっている。ひとまずこのままとする。

% cat Program.cs
using System;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

project.jsonはこのプロジェクトで必要な各種設定を記述するがこちらもデフォルトのままとする。

% cat project.json
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.3"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

次にdotnet restoreを実行してこのプロジェクトの依存関係およびツールそれぞれの復元を行う。

% dotnet restore
% tree
.
├── Program.cs
├── project.json
└── project.lock.json

最後にdotnet runを実行すればプロジェクトの実行に必要な処理が行われてHello World!が出力される。

% dotnet run
Project hwapp (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling hwapp for .NETCoreApp,Version=v1.0

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:01.0528201
 

Hello World!

最終的にプロジェクトディレクトリの中身は以下のようになる。

% tree
.
├── Program.cs
├── bin
│   └── Debug
│       └── netcoreapp1.0
│           ├── hwapp.deps.json
│           ├── hwapp.dll
│           ├── hwapp.pdb
│           ├── hwapp.runtimeconfig.dev.json
│           └── hwapp.runtimeconfig.json
├── obj
│   └── Debug
│       └── netcoreapp1.0
│           ├── dotnet-compile-csc.rsp
│           ├── dotnet-compile.assemblyinfo.cs
│           └── dotnet-compile.rsp
├── project.json
└── project.lock.json

関連資料・記事

参考サイト