Visual Studio Code でC#のコードを書いて実行してみる!
概要
とりあえずC#のコードを書いてみましょうということで、簡単なコンソールアプリでHello World!
環境
OS X EI Capitan バージョン 10.11.4
Visual Studio Code バージョン 1.0.0
dnvm(.NET Version Manager) - Version 1.0.0-rc2-15546
ランタイムはmonoで1.0.0-rc1-update2
$ dnvm list Active Version Runtime Architecture OperatingSystem Alias ------ ------- ------- ------------ --------------- ----- 1.0.0-beta4 mono linux/osx 1.0.0-beta6 mono linux/osx 1.0.0-rc1-update2 coreclr x64 darwin * 1.0.0-rc1-update2 mono linux/osx default
拡張機能でC#のインストール
C# programming with Visual Studio Code
これを見るとC#のサポートはオプションなので(Preview版ではそんなことなかったような気が)拡張機能としてインストールしておきます。
C# | Visual Studio Marketplace
実装
適当な場所にディレクトリを作成し、作成先に移動してVS Codeを起動します。
$ mkdir consoleApp1 $ cd consoleApp1 $ code .
新しいファイルを追加(⌘N)して、C#のコードを書いていきます。
Program.cs
using System; namespace consoleApp1 { public class Program { public static void Main(string[] args) { var bob = new Person(){ID=1,Name="Bob",Age=18}; Console.WriteLine($"Hello {bob.Name}!"); Console.ReadKey(true); } } }
Person.cs
using System; namespace consoleApp1 { public class Person { public int ID { get; set; } public string Name { get; set; } = "No name"; public int Age { get; set; } } }
次にプロジェクトの設定を書いておきます。
project.json
{ "version": "1.0.0-*", "description": "consoleApp1 Console Application", "authors": [ "" ], "tags": [ "" ], "projectUrl": "", "licenseUrl": "", "compilationOptions": { "emitEntryPoint": true }, "tooling": { "defaultNamespace": "consoleApp1" }, "dependencies": { }, "commands": { "consoleApp1": "consoleApp1" }, "frameworks": { "dnx451": { }, "dnxcore50": { "dependencies": { "Microsoft.CSharp": "4.0.1-beta-23516", "System.Collections": "4.0.11-beta-23516", "System.Console": "4.0.0-beta-23516", "System.Linq": "4.0.1-beta-23516", "System.Threading": "4.0.11-beta-23516" } } } }
この状態でコマンドパレットより`dnx`と入力しパッケージのRestoreを選択しdnu restoreを実行します。制御がターミナルに移り、Restore completeと出ればok。
再度`dnx`と入力しRun Commandを選択、dnx consoleApp1を実行します。
実行結果
Hello Bob!
参考
Installing ASP.NET 5 On Mac OS X
https://docs.asp.net/en/latest/getting-started/installing-on-mac.html
Creating a Cross-Platform Console App with DNX
https://docs.asp.net/en/latest/dnx/console.html