.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
関連資料・記事
参考サイト
.NET Coreドキュメント (Microsoft)
.NET Coreによる.NETのクロスプラットフォームへの移行 (Microsoft)
.NET Core技術情報 (Qiita)
C#技術情報 (Qiita)
Home of the .NET Foundation (GitHub)