◆ Norton 先生が止めに入る
◆ PC によってはコンパイル時に csc が落ちる
  ◆ 全く同じファイルとコマンドで同じ OS で同じバージョンの PC で動いてるのに 

この記事のコメントで csc はデフォルトで入ってるから使えるかもということを教えてもらったので使ってみました

これまでは普通に VisualStudio でしかコンパイルしてなかったのですが csc でも簡単にできるようです
一番簡単な例だと C# のファイルを引数に指定すれば同名の exe ファイルが作られます

> cd C:\codes\cs\csctest
> type program.cs
using System;
class Program {
static void Main() {
Console.WriteLine("csc test");
}
}

> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe program.cs
Microsoft (R) Visual C# Compiler version 4.7.2053.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, w
hich 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

> program.exe
csc test

結構簡単でよさそう!
と思いました

セキュリティソフト

1 つめの PC では問題なかったのですが 別の PC ではコンパイルはできるものの実行しても1分程度固まったままでした
その後何も表示されずに終了してしまって その後数回実行しても 何も出ませんでした

原因わからなくてソース見直したりしてると 「SONAR 検疫がどうこう」 と Norton 先生からのメッセージ
セキュリティソフトによっては exe ファイルの実行時のチェックで引っかかるみたいです
やってるのはただ コンソールに文字を表示するだけなのですけどね

すぐに出てくるならまだいいですが最近 Norton 先生が重くて時差が付くのでちょっと不便です

ところで Windows10 の PC でやってみると同じ現象でしたがリアルタイムに Norton 先生からメッセージが来ました
Norton 先生と Windows7 との相性とかあるのでしょうか

といっても VisualStudio で作ったファイルだと Norton 先生にとめられたことはないです
VisuaStudio でビルドするとセキュリティソフト向けの何かが仕込まれてる??

コンパイルすらできない PC も

また別の PC (Windows10) でも試してみると csc を実行したところでプログラムが応答していませんのエラーでした
同じコマンドと同じファイルで 他の PC では動いてるので原因がまったくわかりません

その PC は VisualStudio が入ってるので新しいバージョンの csc で試してみると問題なく動きました

> "C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe" program.cs
Microsoft (R) Visual C# Compiler バージョン 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.

> program.exe
csc test

新しいバージョンが入ってたから良かったものの 入ってない PC で同じ現象起きたら動かせないので解決とはいえません



セキュリティソフトの問題だけでなく エラーメッセージもなくなぜか動かない状態になるようだと 気軽に実行できる bat ファイルの代わりはちょっと厳しそうです

ここまで CLI 的な操作しづらいのは 「Windows」 なんだからコマンドなんて使わずにウィンドウを使おう!っていう MS のメッセージだったり?