C# コンパイル方法を初心者向けに解説|コマンド実行・環境構築・エラー対処まで

はじめに

C#を学び始めたときに、多くの初心者が最初につまずくのが「コンパイル」です。C#のコードを書いただけでは、まだプログラムとして実行できる状態ではありません。書いたソースコードをコンピューターが実行できる形に変換する作業が必要であり、その中心になるのがC#のコンパイルです。

この記事では、C#のコンパイル方法を初心者向けにわかりやすく解説します。コンパイルの基本的な意味から、.NET SDKのインストール、コマンドラインでの実行方法、よくあるエラーの確認ポイントまで順番に説明します。

1. C#のコンパイルとは?初心者向けに仕組みを解説

1-1. コンパイルの意味とC#で必要になる理由

コンパイルとは、人間が読み書きしやすいプログラミング言語のコードを、実行に適した形式へ変換する処理のことです。C#では、.csという拡張子のファイルにソースコードを書きますが、そのままではアプリケーションとして実行できません。

C#のコンパイラは、ソースコードをチェックし、文法ミスがないか、型の使い方が正しいか、必要なライブラリを参照できるかなどを確認します。そのうえで、実行に必要なファイルを生成します。

たとえば、次のようなC#コードがあるとします。

C#
Console.WriteLine("Hello, C#");

このコードは人間には読みやすいですが、実際に動かすには.NETの仕組みに合わせて変換する必要があります。その変換処理がC#のコンパイルです。

1-2. C#のソースコードから実行ファイルができる流れ

C#のソースコードから実行できるプログラムができるまでの流れは、おおまかに次のようになります。

まず、開発者がProgram.csなどのC#ファイルを作成します。次に、dotnet buildなどのコマンドを使ってプロジェクトをビルドします。このときC#コンパイラがソースコードを解析し、問題がなければ中間言語であるILを含む.dllファイルなどを生成します。Microsoftの公式ドキュメントでも、dotnet buildはプロジェクトや依存関係をバイナリのセットにビルドし、その中にILを含む.dllファイルが含まれると説明されています。Microsoft Learn

初心者のうちは「C#をコンパイルすると、実行に必要なファイルが作られる」と理解しておけば問題ありません。厳密には、C#はコンパイル後に.NETランタイム上で実行されます。つまり、C#のコンパイルは「ソースコードを.NETで動かせる形に変換する作業」と考えるとわかりやすいです。

1-3. コンパイルとビルドの違い

C#を学んでいると、「コンパイル」と「ビルド」という言葉が出てきます。この2つは似ていますが、意味は少し違います。

コンパイルは、主にC#のソースコードを変換する処理を指します。一方、ビルドはコンパイルを含む、より広い作業です。ビルドでは、ソースコードのコンパイルだけでなく、参照ライブラリの確認、依存関係の処理、出力ファイルの作成なども行われます。

たとえば、dotnet buildを実行すると、C#コードのコンパイルだけでなく、プロジェクト全体に必要なファイルの生成も行われます。出力には.dllのほか、デバッグ情報用の.pdbファイル、依存関係を示す.deps.json、実行時の設定を示す.runtimeconfig.jsonなどが含まれる場合があります。Microsoft Learn

初心者向けにまとめると、コンパイルは「コードを変換すること」、ビルドは「アプリを動かせる状態にまとめること」です。

1-4. C#のコンパイルで使われる主なツール

C#のコンパイルでよく使われるツールには、主に次のようなものがあります。

1つ目は、.NET CLIです。これはdotnetコマンドを使って、プロジェクト作成、ビルド、実行、テスト、公開などを行うためのコマンドラインツールです。C#をコマンドでコンパイルしたい場合は、基本的にこのdotnetコマンドを使います。

2つ目は、Visual Studioです。Visual StudioはMicrosoftが提供する統合開発環境で、画面上のボタン操作でC#プロジェクトの作成やビルドを行えます。初心者でも扱いやすく、WindowsでC#を学ぶ場合に特に人気があります。

3つ目は、Visual Studio Codeです。Visual Studio Codeは軽量なコードエディターで、拡張機能を追加することでC#開発に対応できます。MacやLinuxでも使いやすく、コマンドラインと組み合わせて学習しやすい環境です。

C#のコンパイル方法をしっかり理解したい場合は、最初にdotnetコマンドの基本を覚えておくと、Visual StudioやVisual Studio Codeを使うときにも仕組みを理解しやすくなります。

2. C#をコンパイルするために必要な環境

2-1. .NET SDKとは何か

C#をコンパイルするには、基本的に.NET SDKが必要です。SDKとは「Software Development Kit」の略で、アプリケーションを開発するために必要なツール一式のことです。

.NET SDKには、C#コードをコンパイルするための仕組み、dotnetコマンド、プロジェクトテンプレート、必要なライブラリなどが含まれています。Microsoftは、Windows、Linux、macOS向けに.NETのインストール方法を案内しており、開発・配置・実行に必要な依存関係を確認できるようにしています。Microsoft Learn

似た言葉に「.NET Runtime」があります。Runtimeは、作成済みの.NETアプリを実行するためのものです。一方、SDKは開発やコンパイルに必要なものです。C#を自分で書いてコンパイルしたい場合は、RuntimeだけではなくSDKをインストールする必要があります。

2-2. Visual Studio・Visual Studio Code・コマンドラインの違い

C#の開発環境には、いくつかの選択肢があります。

Visual Studioは、C#開発に必要な機能がまとまっている統合開発環境です。プロジェクト作成、コード補完、デバッグ、ビルド、実行を画面上で操作できます。特にWindowsでC#を始める初心者には扱いやすい選択肢です。

Visual Studio Codeは、軽量でシンプルなエディターです。必要な拡張機能を入れることでC#のコード補完やデバッグに対応できます。MacやLinuxでも使いやすく、学習用にも実務用にも利用されています。

コマンドラインは、ターミナルやPowerShellでdotnetコマンドを直接実行する方法です。最初は少し難しく感じるかもしれませんが、C#のコンパイルの仕組みを理解するには非常に役立ちます。

初心者がC#のコンパイルを理解するなら、「コードはエディターで書く」「コンパイルはdotnet buildで行う」「実行はdotnet runで確認する」という流れを覚えるのがおすすめです。

2-3. Windows・Mac・Linuxでの環境構築の考え方

C#はWindowsだけでなく、MacやLinuxでも開発できます。.NETはクロスプラットフォームの開発環境として提供されており、公式サイトでもLinux、Windows、macOSがサポート対象として案内されています。Microsoft

Windowsの場合は、Visual StudioをインストールしてC#開発機能を選ぶ方法と、.NET SDKを単体でインストールする方法があります。初心者で画面操作を中心に学びたいならVisual Studio、コマンド操作も学びたいなら.NET SDKのインストールがおすすめです。

Macの場合は、.NET SDKをインストールし、Visual Studio Codeなどのエディターと組み合わせる方法が一般的です。MicrosoftのmacOS向けドキュメントでは、SDKをインストールすると標準の.NETランタイムとASP.NET Coreランタイムも含まれると説明されています。Microsoft Learn

Linuxの場合は、利用しているディストリビューションに合わせてパッケージマネージャーなどから.NET SDKをインストールします。サーバー環境やクラウド環境でC#アプリを扱う場合にも、コマンドラインでのビルド操作を知っておくと便利です。

2-4. 初心者におすすめの開発環境

C#初心者におすすめの開発環境は、目的によって変わります。

Windowsで学習するなら、Visual Studioを使うと始めやすいです。画面上でプロジェクトを作成し、実行ボタンを押すだけでビルドと実行ができるため、最初のハードルが低くなります。

一方で、C#のコンパイル方法をきちんと理解したいなら、.NET SDKとコマンドラインの組み合わせがおすすめです。dotnet newでプロジェクトを作り、dotnet buildでコンパイルし、dotnet runで実行する流れを経験すると、Visual Studioの裏側で何が行われているのかも理解しやすくなります。

MacやLinuxを使っている場合は、.NET SDKとVisual Studio Codeの組み合わせが扱いやすいです。軽量で環境を作りやすく、コマンドライン操作にも慣れることができます。

3. .NET SDKをインストールしてC#をコンパイルできる状態にする

3-1. .NET SDKのインストール手順

C#をコンパイルするには、まず.NET SDKをインストールします。基本的な流れは次のとおりです。

まず、Microsoftの.NETダウンロードページから使用しているOSに合ったSDKを選びます。.NETのダウンロードページでは、Linux、macOS、Windows向けに.NETアプリをビルド・実行するためのSDKやRuntimeが提供されています。Microsoft

Windowsの場合は、インストーラーをダウンロードして実行します。MicrosoftのWindows向けインストール案内では、Windows InstallerパッケージやWinGetなどを使ってSDKやRuntimeをインストールできると説明されています。Microsoft Learn

Macの場合は、公式インストーラーを使う方法やパッケージ管理ツールを使う方法があります。Linuxの場合は、Ubuntu、Debian、Fedoraなどのディストリビューションに応じてインストール方法が異なります。

初心者は、まず公式のインストーラーを使う方法がわかりやすいです。インストールが終わったら、次にdotnetコマンドが使えるか確認します。

3-2. dotnetコマンドが使えるか確認する方法

.NET SDKをインストールしたら、ターミナル、PowerShell、コマンドプロンプトのいずれかを開いて、次のコマンドを入力します。

Bash
dotnet --version

バージョン番号が表示されれば、.NET SDKが正しくインストールされています。たとえば、次のような数字が表示されます。

Bash
9.0.xxx

表示される数字は、インストールした.NET SDKのバージョンによって異なります。

インストール済みのSDKを一覧で確認したい場合は、次のコマンドも使えます。

Bash
dotnet --list-sdks

もしdotnetコマンドが認識されない場合は、SDKが正しくインストールされていないか、環境変数PATHが設定されていない可能性があります。その場合は、インストーラーを再実行する、ターミナルを開き直す、PCを再起動するなどを試してみましょう。

3-3. C#のバージョンと.NETの関係

C#には言語バージョンがあり、.NETにもバージョンがあります。初心者にとって少し混乱しやすいポイントですが、基本的には「使用する.NETのターゲットフレームワークによって、既定のC#言語バージョンが決まる」と考えるとわかりやすいです。

MicrosoftのC#言語バージョン管理に関するドキュメントでも、最新のC#コンパイラはプロジェクトのターゲットフレームワークに基づいて既定の言語バージョンを決定すると説明されています。Microsoft Learn

たとえば、新しい.NETを対象にしたプロジェクトでは、より新しいC#の機能が使える場合があります。一方、古い.NETを対象にしているプロジェクトでは、一部の新しいC#構文が使えないことがあります。

初心者のうちは、特別な理由がなければ、インストールした.NET SDKで作成される標準設定のまま進めれば問題ありません。無理にC#の言語バージョンを変更すると、コンパイルエラーや実行時エラーの原因になることがあります。

3-4. インストール後によくある確認ポイント

.NET SDKをインストールしたあと、C#をコンパイルできない場合は、次の点を確認しましょう。

まず、dotnet --versionでバージョンが表示されるか確認します。表示されない場合は、SDKがインストールされていないか、PATHが通っていない可能性があります。

次に、SDKではなくRuntimeだけをインストールしていないか確認します。C#をコンパイルするにはSDKが必要です。Runtimeだけでは、既存のアプリを実行できても、自分で書いたC#コードをビルドできない場合があります。

また、ターミナルを開いたままインストールした場合、PATHの変更が反映されていないことがあります。その場合は、ターミナルを閉じて開き直すか、PCを再起動します。

さらに、プロジェクトフォルダーの場所も確認しましょう。dotnet buildは、通常.csprojファイルがあるフォルダーで実行します。違うフォルダーで実行すると、プロジェクトが見つからずエラーになることがあります。

よくあるエラーの例として、次のようなものがあります。

Bash
'dotnet' is not recognized

これは、dotnetコマンドが認識されていない状態です。SDKのインストールやPATHの設定を確認しましょう。

Bash
MSBUILD : error MSB1003: Specify a project or solution file.

これは、プロジェクトファイルが見つからない場所でdotnet buildを実行したときによく出るエラーです。.csprojファイルがあるフォルダーに移動してから再実行します。

4. コマンドラインでC#をコンパイルする方法

4-1. C#プロジェクトを作成する

ここからは、実際にコマンドラインでC#をコンパイルする方法を説明します。

まず、作業用のフォルダーを作成し、そこに移動します。

Bash
mkdir CSharpSample
cd CSharpSample

次に、C#のコンソールアプリプロジェクトを作成します。

Bash
dotnet new console

このコマンドを実行すると、現在のフォルダーにC#のコンソールアプリに必要なファイルが作成されます。代表的なファイルは、Program.cs.csprojファイルです。

別の名前でプロジェクトフォルダーを作成したい場合は、次のように実行します。

Bash
dotnet new console -n HelloCSharp
cd HelloCSharp

これで、HelloCSharpというフォルダーの中にC#プロジェクトが作成されます。

4-2. Program.csの中身を確認する

プロジェクトを作成したら、Program.csを開いて中身を確認します。新しいテンプレートでは、次のようなコードが書かれていることがあります。

C#
Console.WriteLine("Hello, World!");

これは、画面にHello, World!と表示するだけのシンプルなC#プログラムです。

少し変更して、次のようにしてみましょう。

C#
Console.WriteLine("C#のコンパイルを学習中です");

保存したら、次にこのC#コードをコンパイルします。

初心者が注意したいのは、記号の書き忘れです。たとえば、行末のセミコロン;を消してしまうと、コンパイル時にエラーになります。

C#
Console.WriteLine("C#のコンパイルを学習中です")

このように書くと、C#の文法として正しくないため、dotnet buildを実行したときにエラーが表示されます。コンパイルエラーは失敗ではなく、コードの間違いを教えてくれる重要なメッセージです。

4-3. dotnet buildでコンパイルする

C#プロジェクトをコンパイルするには、.csprojファイルがあるフォルダーで次のコマンドを実行します。

Bash
dotnet build

dotnet buildは、プロジェクトやその依存関係をビルドし、実行に必要なバイナリを生成するコマンドです。公式ドキュメントでも、dotnet buildはプロジェクト、ソリューション、またはファイルベースのアプリと依存関係をバイナリのセットにビルドすると説明されています。Microsoft Learn

正常にコンパイルできると、次のようなメッセージが表示されます。

Bash
Build succeeded.
0 Warning(s)
0 Error(s)

これは、C#のコンパイルが成功したことを意味します。

ビルド後のファイルは、通常次のようなフォルダーに出力されます。

Bash
bin/Debug/net9.0/

net9.0の部分は、プロジェクトで指定されている.NETのバージョンによって変わります。

コンパイルしたアプリを実行したい場合は、次のコマンドを使います。

Bash
dotnet run

dotnet runを実行すると、C#プログラムがビルドされ、コンソールに結果が表示されます。

Bash
C#のコンパイルを学習中です

もしdotnet buildでエラーが出た場合は、エラーメッセージを上から順番に読みます。C#のコンパイルエラーには、ファイル名、行番号、エラー内容が表示されることが多いです。

たとえば、次のようなエラーが出たとします。

Bash
Program.cs(1,48): error CS1002: ; expected

これは、Program.csの1行目付近でセミコロン;が必要だという意味です。エラーコードや英語のメッセージに慣れていなくても、行番号を見れば修正箇所を探しやすくなります。

C#のコンパイルでエラーが出たときは、次の順番で確認すると解決しやすいです。

まず、エラーが出ているファイル名と行番号を確認します。次に、その行の前後でセミコロン、かっこ、ダブルクォーテーションが抜けていないか確認します。さらに、変数名やメソッド名のスペルミスがないか確認します。

初心者のうちは、エラーを一度にすべて直そうとせず、上から1つずつ修正して再度dotnet buildを実行するのがおすすめです。最初のエラーを直すだけで、後続のエラーもまとめて消えることがあります。

まとめ

C#のコンパイルとは、.csファイルに書いたソースコードを.NETで実行できる形に変換する作業です。C#を実行するには、コードを書くだけでなく、コンパイルやビルドの流れを理解することが大切です。

C#をコンパイルするには、基本的に.NET SDKをインストールします。インストール後は、dotnet --versionで環境を確認し、dotnet new consoleでプロジェクトを作成し、dotnet buildでコンパイルできます。

初心者は、まず次の流れを覚えておきましょう。

Bash
dotnet new console
dotnet build
dotnet run

この3つのコマンドを理解すれば、C#の基本的なコンパイル方法を実践できます。

C#のコンパイルエラーは、最初は難しく感じるかもしれません。しかし、エラーメッセージには修正のヒントが含まれています。ファイル名、行番号、エラー内容を確認しながら、1つずつ直していけば問題ありません。

C#のコンパイル方法を理解すると、Visual StudioやVisual Studio Codeで開発するときにも、裏側で何が行われているのかがわかるようになります。まずは小さなコンソールアプリを作り、dotnet buildでコンパイルするところから始めてみましょう。