L'Isola di Niente
L'Isola di Niente » .NET Tips » Visual Studio なんていらないよ

Visual Studio なんていらないよ

C# をビルド(コンパイル)するのに Visual Studio は必要ありません。
.NET Framework さえインストールしていれば csc.exe も reference も揃うからです。

Windows 7 なら v3.5 までならデフォルトで揃っている状態で出荷されています。
実は vbc.exe という VB コンパイラや MSBuild.exe もあるけどココでは割愛。

C:\Windows\Microsoft.NET\Framework64 を覗いてみましょう。

img/cscexe.png

.NET Framework 及び C# のバージョンに一致したディレクトリにそれぞれ csc.exe が存在する。
.NET4 以降も Windows Update から Client Profile というやつを導入すれば十分です。
4.5 はストアアプリ用なので 7 には不要ですけど。

コマンドラインオプションのサンプルは MSDN にあります。
csc.exe を使用したコマンド ラインからのビルド

Build 方法

csc.exe はコマンドラインアプリなので cmd.exe から使う必要があります。
環境変数 PATH に追記してもいいけど bat ファイルを作るほうが簡単。

たとえばこんな WPF ウインドウとバインディングを使うコードを書いてみる。
多分ほとんどの人が導入済みな .NET Framework 3.5 つまり C# 3.5 で書いている。

wpf_win.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;

class OreWin : Window
{
	private TextBox _textbox;
	private TextBlock _textblock;

	public OreWin()
	{
		this.Title = "俺のういんどう!";
		this.Width = 400;
		this.Height = 120;
		this.DataContext = _textbox;
		this.CreateControls();
		// Binding
		var binding = new Binding("Text");
		binding.Source = _textbox;
		_textblock.SetBinding(TextBlock.TextProperty, binding);
	}
	private void CreateControls()
	{
		_textbox = new TextBox();
		_textblock = new TextBlock();
		var label = new TextBlock(new Bold(new Run("何か書くと下にコピーされる")));
		var stackpanel = new StackPanel();
		// Append
		stackpanel.Children.Add(label);
		stackpanel.Children.Add(_textbox);
		stackpanel.Children.Add(_textblock);
		this.Content = stackpanel;
	}
}

class Test
{
	// WPF 等では STA 属性必須!
	[STAThread]
	public static void Main(string[] args)
	{
		var win = new OreWin();
		var app = new Application();
		app.Run(win);
	}
}

build する *.bat という拡張子のテキストファイルを作成し以下のように書く。
C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe ^
/reference:PresentationCore.dll ^
/reference:PresentationFramework.dll ^
/reference:WindowsBase.dll ^
/target:winexe ^
/out:net35wpf.exe ^
/win32icon:777.ico ^
/optimize+ ^
wpf_win.cs
PAUSE
最初に build する C# バージョンの csc.exe へのフルパスを入れる。
/reference オプションで参照する reference をズラズラと書いていく。
他のオプションについては MSDN で(手抜き
^ を利用すればインラインなコマンドを改行できる、bash は \ だけど。
最後に PAUSE と書けば *.bat の W クリックでコンソールが閉じないのでお勧め。
ソースコードの指定は複数の場合は * によるワイルドカードも利用できる。

zip にまとめたもの。
wpf_win_src.zip

img/csc_build.png

というウインドウを表示する exe ができあがったはず。
Copyright(C) sasakima-nao All rights reserved 2002 --- 2017.