Vista以降のWindows OSには標準でC#/Visual Basicのコンパイラーが付属する。本稿では、これらを使い、ソースコードをコンパイルする方法を解説する。
対象: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に最初からコンパイラーが含まれるようになったのはWindows Vistaからであるが、Windows XPでもWindows Updateの重要な更新を適用していれば入っている(次の画像)。
なお、「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
ソースコードが書けたら、コマンドプロンプトでコンパイルし、実行してみよう。
コマンドプロンプトを開き、ソースコードのあるフォルダーに移動し、次に示すコマンドを入力して[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
WindowsにはC#/VBのコンパイラーが標準で含まれている。C#/VBのどんなプログラムでも、原理的にはVisual Studioを使わずにコンパイルできるのである。
「csc.exe」(C#用コンパイラー)と「vbc.exe」(VB用コンパイラー)の詳しい使い方については、次のMSDNをご覧いただきたい。
カテゴリ:開発環境&ツール 処理対象:コンパイラー
カテゴリ:C# 処理対象:コンパイラー
カテゴリ:Visual Basic 処理対象:コンパイラー
関連TIPS:コンパイラによりデフォルトで参照されるアセンブリは?
関連TIPS:プログラムからソース・コードをコンパイルするには?
関連TIPS:プログラムからソース・コードをコンパイルして実行するには?
Copyright© Digital Advantage Corp. All Rights Reserved.