Visual StudioなしでC#【コマンドラインアプリでHello World編】

2021/03/28に公開

概要

以前の仕事の環境上、いろいろ制限があったので
Visual StudioなしでC#でプログラム組む方法についてまとめました。

必要なもの

  • Windows OS
  • .Net Framework 2.0以上
  • テキストエディタ(なんでも)

コンパイラの準備

まずはなんにせよ、コンパイラを準備しないと始まりません。
C#用のコンパイラはcsc.exe。標準ならC:\Windows\Microsoft.NET\Framework\<バージョン>にあるはずです。

コマンドプロンプトを開き、cscと叩いてバージョン確認します。
ちなみにエクスプローラをShiftキー+右クリックで、開いているディレクトリをカレントにしてプロンプトを開けます。

ver.2.0の場合
C:\Windows\Microsoft.NET\Framework\v2.0.50727>csc
Microsoft(R) Visual C# 2005 Compiler version 8.00.50727.8670
for Microsoft(R) Windows(R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

fatal error CS2008: 入力が指定されていません。

C:\Windows\Microsoft.NET\Framework\v2.0.50727>
ver.4.6.1の場合
C:\Windows\Microsoft.NET\Framework\v4.0.30319>csc
Microsoft (R) Visual C# Compiler version 4.6.1038.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework,
but only supports language versions up to C# 5, which is no longer the latest version.
For compilers that support newer versions of the C# programming language,
see http://go.microsoft.com/fwlink/?LinkID=533240

warning CS2008: ソース ファイルが指定されていません。
error CS1562: ソースのない出力には、/out オプションを指定しなければなりません。

C:\Windows\Microsoft.NET\Framework\v4.0.30319>

バージョンによってちょっと内容が違うかもしれません。
エラーも出ているが、ソースコード指定していないので仕方ないと思います。一応実行は出来ているのでこれで問題ありません。

コンパイラは見つかったので、ここへパスを通します。

環境変数のPATHの設定方法はここでは省略させていただきます。
Google先生に聞かなくても分かるよね??

環境変数の修正もはばかられる場合は、スクリプトを組んでしまうとよいでしょう。

build.bat
@echo off
setlocal

set PATH="C:\Windows\Microsoft.NET\Framework\v2.0.50727";%PATH%

csc.exe %*

endlocal

実行する時はbuild.bat source.jsとコマンドを叩くか、ソースファイルをバッチスクリプトにドロップすればOKです。

Hello World!!

さて、まずは恒例のHello Worldです。
とりあえず以下のようにソースコードを書いてみました。

HelloWorld.cs
namespace HelloWorld
{
    public static class Program
    {
        public static void Main(params string[] args)
        {
            System.Console.WriteLine("Hello world!!");
        }
    }
}

つぎのコマンドでビルドできます。

> build.bat HelloWorld.cs

ビルド後、同じディレクトリにProgram.exeができているので、実行してください。

> Program.exe
Hello World!!

おわりに

うまく実行できたでしょうか??
最初にやってみた時は意外と簡単にできて驚きました。
いや、当たり前なんですけどね。。。でもVisual Studioの大きさからすると意外な簡単さだったので、驚いたんです。

次はmsbuildに挑戦してみたいと思います。

ここまでの経緯

※個人的私情挟んでいる話なので、以下読む必要ないです。

金融系SEの現場なんかでよくあること。

  • インターネット閲覧制限あり(google検索結果のリンク先は大体社内規定でブロックされてる)
  • 許可ソフトウェア以外のインストール禁止(フリーorシェア無関係、バージョン違いもダメ)
  • OSはWindows 7のみ

とまぁ、いまどきの開発者に対して結構手厳しい現場も多い。

それでもプログラマらしくちょっとしたツールなんかプログラム組みたい!
でもExcel VBAはちょっとなー、、メンテが面倒だ、、
PowerShellは、、ちょっと遅い、、
cmdだとすぐ限界迎える
COBOLで組むのもなー、、、

といった気持ちにかられ、でた結論。

よし、.Net Frameworkだ!

.Net Frameworkなら標準で入っているし、C#なら個人的にも使っている。
ただVisual Studio(以下VS)はもちろん入れられないので、VSなしでテキストエディタのみでコーディングしていく。
そのやり方について振り返りつつ備忘録としてまとめてみた。

Discussion