Mac に C# 環境(.NET)を作る

Mac に C# 環境(.NET)を作る

August 25, 2022

Mac で C# の実行環境を作成したい場合、方法は2つあります。

  • A) Visual Studio (for Mac) をインストールする
  • B) .NET だけをインストールする

どちらの方法にするかは、使用したいエディタによって決めてしまうと良いでしょう。

C# を動かすのに必要なのは .NET だけです。

前者の場合、Visual Studio をインストールする際に .NET も合わせてインストールされます。そのため、エディタとして Visual Studio を使用するつもりなのであれば、こちらを選ぶと楽です。

(Visual Studio ではなく)Visual Studio Code などをエディタに使いたいのであれば、後者で .NET だけをインストールするのが良いでしょう。

私は後者の方法を選択しました。そのためそちらだけ説明が詳細になります。

A) Visual Studio (for Mac) をインストールする #

以下の公式ドキュメントに従えば大丈夫です。

B) .NET だけをインストールする #

公式のドキュメントは以下にありますが …

私は可能なかぎり Homebrew でインストールするのが好みなので、下記でインストールします。

https://formulae.brew.sh/cask/dotnet-sdk

brew install --cask dotnet-sdk

完了後は以下を実行してインストールされていることを確認します。

# インストールされている .NET SDK のバージョンを表示

dotnet --list-sdks

補足:Hello World コンソールアプリの作成 #

環境が用意できたら、以下で Hello World サンプルを試すことができます。

mkdir HelloWorldExample
cd HelloWorldExample

dotnet new console

dotnet run
# "Hello, World!" がコンソールに表示される

プロジェクトを開くと以下のコードが作成されているはずです。

Program.cs

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!!!");

補足:テンプレートの種類 #

dotnet new で作成できるテンプレートの種類は多数あります。さきほどのサンプルでは console テンプレートを指定しました。次のコマンドでテンプレート一覧を表示することができます。

dotnet new --list
These templates matched your input:

Template Name                                 Short Name      Language    Tags
--------------------------------------------  --------------  ----------  --------------------------
ASP.NET Core Empty                            web             [C#],F#     Web/Empty
ASP.NET Core gRPC Service                     grpc            [C#]        Web/gRPC
ASP.NET Core Web API                          webapi          [C#],F#     Web/WebAPI
ASP.NET Core Web App                          webapp,razor    [C#]        Web/MVC/Razor Pages
ASP.NET Core Web App (Model-View-Controller)  mvc             [C#],F#     Web/MVC
ASP.NET Core with Angular                     angular         [C#]        Web/MVC/SPA
ASP.NET Core with React.js                    react           [C#]        Web/MVC/SPA
Blazor Server App                             blazorserver    [C#]        Web/Blazor
Blazor WebAssembly App                        blazorwasm      [C#]        Web/Blazor/WebAssembly/PWA
Class Library                                 classlib        [C#],F#,VB  Common/Library
Console App                                   console         [C#],F#,VB  Common/Console
dotnet gitignore file                         gitignore                   Config
Dotnet local tool manifest file               tool-manifest               Config
EditorConfig file                             editorconfig                Config
global.json file                              globaljson                  Config
MSTest Test Project                           mstest          [C#],F#,VB  Test/MSTest
MVC ViewImports                               viewimports     [C#]        Web/ASP.NET
MVC ViewStart                                 viewstart       [C#]        Web/ASP.NET
NuGet Config                                  nugetconfig                 Config
NUnit 3 Test Item                             nunit-test      [C#],F#,VB  Test/NUnit
NUnit 3 Test Project                          nunit           [C#],F#,VB  Test/NUnit
Protocol Buffer File                          proto                       Web/gRPC
Razor Class Library                           razorclasslib   [C#]        Web/Razor/Library
Razor Component                               razorcomponent  [C#]        Web/ASP.NET
Razor Page                                    page            [C#]        Web/ASP.NET
Solution File                                 sln                         Solution
Web Config                                    webconfig                   Config
Worker Service                                worker          [C#],F#     Common/Worker/Web
xUnit Test Project                            xunit           [C#],F#,VB  Test/xUnit

補足:VS Code の C# 拡張 #

VS Code で C# のコードを書くのであればこちらを入れておきましょう。Microsoft 公式も入れることを推奨しています。

補足:VS Code の C# フォーマット設定 #

settings.json に以下を追記しましょう。フォーマットを実行した際にコードが整形されます。

"[csharp]": {
  "editor.defaultFormatter": "ms-dotnettools.csharp"
},

フォーマッタは .NET 6 からデフォルトで組み込まれるようになりました。そのため 6 以前のバージョンを利用するのであれば別途インストール作業が必要です。