※バージョン番号(v4.0.30319)のフォルダは環境によって番号が違うので適宜修正する
CompileCS.bat
@echo off
REM このバッチファイルにドラッグアンドドロップしたC#ソースファイルをコンパイルする
cd %~dp1
set CSC_EXE=C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
for %%f in (%*) do %CSC_EXE% -target:winexe "%%f"
コードが若干長いが、以下のC#ソースファイル[HelloWorldProject.cs(文字コード:UTF-8)]を上のバッチファイル[CompileCS.bat]にドラッグアンドドロップすると、ソースファイルのある場所に HelloWorldProject.exe が作成される。
※複数ファイルを一括コンパイルも可能
HelloWorldProject.cs
// 文字コード[UTF-8]で保存する
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Reflection;
using System.Windows.Forms;
using System.Drawing;
class HelloWorldProject : Form
{
[STAThread]
public static void Main() {
GeneratedCodeAttribute generatedCodeAttribute =
new GeneratedCodeAttribute(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"
);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run( new HelloWorldProject());
}
public HelloWorldProject(){
Text = "HelloWorldProject";
ClientSize = new Size(300, 330);
BackColor = Color.FromArgb(0xf5, 0xf5, 0xf5);
Button btn1 = new Button();
btn1.Location = new Point(75, 50);
btn1.Size = new Size(150, 50);
btn1.BackColor = Color.FromArgb(0xd3, 0xd3, 0xd3);
btn1.Font = new Font("Meiryo UI", 18);
btn1.Text = "English";
btn1.Click += btn1_Click;
Controls.AddRange(new Control[] { btn1 });
Button btn2 = new Button();
btn2.Location = new Point(75, 110);
btn2.Size = new Size(150, 50);
btn2.BackColor = Color.FromArgb(0x00, 0x00, 0xFF);
btn2.ForeColor = Color.FromArgb(0xFF, 0xFF, 0xFF);
btn2.Font = new Font("Meiryo UI", 18);
btn2.Text = "日本語";
btn2.Click += btn2_Click;
Controls.AddRange(new Control[] { btn2 });
Button btn3 = new Button();
btn3.Location = new Point(75, 170);
btn3.Size = new Size(150, 50);
btn3.BackColor = Color.FromArgb(0xd3, 0xd3, 0xd3);
btn3.Font = new Font("Meiryo UI", 18);
btn3.Text = "한글";
btn3.Click += btn3_Click;
Controls.AddRange(new Control[] { btn3 });
Button btn4 = new Button();
btn4.Location = new Point(75, 230);
btn4.Size = new Size(150, 50);
btn4.BackColor = Color.FromArgb(0xd3, 0xd3, 0xd3);
btn4.Font = new Font("Meiryo UI", 18);
btn4.Text = "中文";
btn4.Click += btn4_Click;
Controls.AddRange(new Control[] { btn4 });
}
void btn1_Click(object sender, System.EventArgs e) {
MessageBox.Show("Hello,World!", "英語");
}
void btn2_Click(object sender, System.EventArgs e) {
MessageBox.Show("こんにちわ、世界!", "日本語");
}
void btn3_Click(object sender, System.EventArgs e) {
MessageBox.Show("안녕하세요 세계!", "韓国語");
}
void btn4_Click(object sender, System.EventArgs e) {
MessageBox.Show("你好 世界!", "中国語");
}
}
出来上がった HelloWorldProject.exe をダブルクリックすると、
というウィンドウが現れて、それぞれのボタンをクリックすると言語ごとの「Hello,World!」がメッセージダイアログに表示される。
<修正>
[2021/12/31]
バッチファイルを sendTo フォルダに入れて右クリックメニューの[送る]で実行する場合に備えて、カレントフォルダをソースファイルのフォルダにするための、
cd %~dp1
を追加しました。