連載
» 2015年04月15日 05時00分 UPDATE

.NET TIPS:OSに標準付属のC#/VBコンパイラーでソースコードをコンパイルするには?

Vista以降のWindows OSには標準でC#/Visual Basicのコンパイラーが付属する。本稿では、これらを使い、ソースコードをコンパイルする方法を解説する。

[山本康彦,BluewaterSoft/Microsoft MVP for Windows Platform Development]
.NET TIPS
Insider.NET

 

「.NET TIPS」のインデックス

連載目次

対象:Windows Vista以降
ただし、Windows XPはWindows Updateで対応


 .NET Frameworkのソースコードをコンパイルしてプログラムを作るには、Visual Studioが必須だと思い込んでいないだろうか? 実は、C#とVisual Basic(.NET Framework用のもの。「VB.NET」と呼ばれることもある。以降「VB」)のコンパイラーはWindowsに標準で含まれているのだ。つまり、セットアップしたばかりのWindowsでも、「メモ帳」でソースコードを書き、コマンドプロンプトでコンパイルして、プログラムを作成できるのである。本稿では、Visual Studioをインストールしていない環境でコンパイルする方法を紹介する。

コンパイラーの場所

 Windowsがインストールされているフォルダーの下の「Microsoft.NET\Framework」フォルダーまたは「Microsoft.NET\Framework64」フォルダーの下に、バージョン番号の付いたフォルダーがあり、そこにコンパイラーが入っている。C#用のコンパイラーは「csc.exe」、VB用のは「vbc.exe」というファイル名だ。

 入っているコンパイラーのバージョンは、Windowsのバージョンによって異なる。例えば、Windows 8.1では.NET Framework 4.5用のコンパイラーしか入っていない(次の画像)。

Windows 8.1に入っているC#/VBコンパイラー
Windows 8.1に入っているC#/VBコンパイラー Windows 8.1に入っているC#/VBコンパイラー
上: まっさらのハードディスク(仮想マシンを使用)にWindows 8.1(Update 1)をメディアからインストールした直後の状態である。インストールされているプログラムをコントロールパネルで確認しても、もちろん何も入っていない。
下: しかし、下記のフォルダーを見ると、「csc.exe」ファイル(C#用コンパイラー)と「vbc.exe」ファイル(VB用コンパイラー)が存在している(赤丸内)。なお、フォルダー名はバージョン4.0となっているが、Windows 8.xに入っている.NET Frameworkのバージョンは4.5である(「Windows TIPS:.NET Frameworkのバージョンを整理する」参照)。また、バージョン4.0以外のフォルダーも見えるが、それらにコンパイラーは入っていない。
C:\Windows\Microsoft.NET\Framework\v4.0.30319

 Windowsに最初からコンパイラーが含まれるようになったのはWindows Vistaからであるが、Windows XPでもWindows Updateの重要な更新を適用していれば入っている(次の画像)。

Windows XPに入っているC#/VBコンパイラー Windows XPに入っているC#/VBコンパイラー
重要な更新も含めてWindows Updateを全て適用したWindows XPにも、「csc.exe」ファイル(C#用コンパイラー)と「vbc.exe」ファイル(VB用コンパイラー)が入っている(赤丸内)。
ちなみに、このWindows XPの環境は、動作確認の必要のために仮想マシン上に維持しているものである。タスクトレイのネットワークアイコンを見れば分かるが、ネットワーク接続なしの状態にしてある。

 なお、「csc.exe」/「vbc.exe」の両コマンドには、32bit版と64bit版がある(フォルダー名「Framework64」の下に入っているのが64bit版)。両者の違いは、コンパイラーが動作する環境の相違だけである。どちらでも、出力されるプログラムは同じものになる。

「メモ帳」でソースコードを書いてコンパイルするには?

 コマンドプロンプトで「csc.exe」/「vbc.exe」を使えばよい。

 まず、ソースコードを置くためのフォルダーを作る。ここでは「C:\work」とする。そこにテキストファイルを作成し、ファイル名を「HelloWorld.cs」(C#の場合)または「HelloWorld.vb」(VBの場合)にする。次に「メモ帳」を起動し、作ったファイルを開き、ソースコードを記述する(次のコードと画像)。

using System;

public static class HelloWorld
{
  public static void Main()
  {
    Console.WriteLine("Hello, C#");
  }
}

Public Module HelloWorld
  Public Sub Main()
    Console.WriteLine("Hello, VB!")
  End Sub
End Module

簡単なソースコードの例(上:C#、下:VB)
入門書などでお約束となっている「Hello, world!」プログラムである。

「メモ帳」でソースコードを記述する(Windows 8.1 Update 1) 「メモ帳」でソースコードを記述する(Windows 8.1 Update 1)
エクスプローラーで作業用のフォルダーを作成し、右のペインの空いているところを右クリックして出てきたコンテキストメニューから[新規作成]−[テキスト ドキュメント]を選ぶ。作成されたテキストファイルの名前を、「HelloWorld.cs」(C#の場合)または「HelloWorld.vb」(VBの場合)にリネームする。
スタートボタンを右クリックして出てきたコンテキストメニューから[ファイル名を指定して実行]を選び、表示されたダイアログに「notepad」と入力して[Enter]キーを押すと「メモ帳」が起動する。起動したメモ帳に、エクスプローラーから先ほどのファイルをドラッグ&ドロップし、ソースコードを入力し、上書き保存する。
なお、ソースコードのファイルを作成/編集する手順にはさまざまな方法がある。以上で説明した方法とは異なる手順で行っても構わない。

 ソースコードが書けたら、コマンドプロンプトでコンパイルし、実行してみよう。

 コマンドプロンプトを開き、ソースコードのあるフォルダーに移動し、次に示すコマンドを入力して[Enter]キーを押すと、ソースコードがコンパイルされて実行ファイルが出力される。コンパイルに成功したら(=何もエラーメッセージが表示されなかったら)、「HelloWorld」と入力して[Enter]キーを押せばコンパイルされたプログラムが実行される(次の画像)。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc HelloWorld.cs

C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc HelloWorld.vb

コマンドプロンプトからコンパイルするコマンド(上:C#、下:VB)
パスの部分は、それぞれの環境に応じて変更してほしい。
ここでは32bit版のコンパイラーを使っている。64bit版のWindowsでは、32bit版/64bit版どちらを使ってもよい。32bit版のWindowsでは、32bit版のコンパイラーしか使えない。

コマンドプロンプトからコンパイルして実行する(Windows 8.1 Update 1)
コマンドプロンプトからコンパイルして実行する(Windows 8.1 Update 1) コマンドプロンプトからコンパイルして実行する(Windows 8.1 Update 1)
上はC#、下はVBの例である。
スタートボタンを右クリックして出てきたコンテキストメニューから[コマンド プロンプト]を選ぶと、コマンドプロンプトが開く。あるいは、スタートボタンを右クリックして出てきたコンテキストメニューから[ファイル名を指定して実行]を選び、表示されたダイアログに「cmd」と入力して[Enter]キーを押してもよい。
コマンドプロンプトでカレントディレクトリをソースコードを置いた場所に移し、コンパイルするコマンドを入力し(赤枠内)、[Enter]キーを押す(コマンドプロンプトの使い方については「これだけは覚えておきたいWindowsのコマンドプロンプトの使い方」を参照)。何もエラーが出ずにコンパイルに成功したら、「HelloWorld」(画像では「HelloWorld.exe」となっているが、拡張子は入力しなくてよい)と入力して[Enter]キーを押すと作成したプログラムが実行され、実行結果が表示される(赤丸内)。

まとめ

 WindowsにはC#/VBのコンパイラーが標準で含まれている。C#/VBのどんなプログラムでも、原理的にはVisual Studioを使わずにコンパイルできるのである。

 「csc.exe」(C#用コンパイラー)と「vbc.exe」(VB用コンパイラー)の詳しい使い方については、次のMSDNをご覧いただきたい。

カテゴリ:開発環境&ツール 処理対象:コンパイラー
カテゴリ:C# 処理対象:コンパイラー
カテゴリ:Visual Basic 処理対象:コンパイラー
関連TIPS:コンパイラによりデフォルトで参照されるアセンブリは?
関連TIPS:プログラムからソース・コードをコンパイルするには?
関連TIPS:
プログラムからソース・コードをコンパイルして実行するには?


「.NET TIPS」のインデックス

.NET TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。