CSC.exe のパス
Windows 7 64bit Professional 環境で Visual Studio をインストールしてなくても C#コンパイラ の csc.exe が存在するかを調べてみた。
- C:\Windows\Microsoft.NET\Framework64\v2.0.50727\csc.exe
- C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe
- C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe
- C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
- C:\Windows\winsxs\amd64_netfx-csharp_compiler_csc_b03f5f7f11d50a3a_6.1.7600.16385_none_8b52bb03d4ea5d36\csc.exe
- C:\Windows\winsxs\amd64_netfx-csharp_compiler_csc_b03f5f7f11d50a3a_6.1.7601.18523_none_8b28e17fd540a0c9\csc.exe
- C:\Windows\winsxs\amd64_netfx-csharp_compiler_csc_b03f5f7f11d50a3a_6.1.7601.22733_none_745c3ae5eee71a77\csc.exe
- C:\Windows\winsxs\amd64_netfx35linq-csharp_31bf3856ad364e35_6.1.7601.17514_none_7551b4792ac9630d\csc.exe
- C:\Windows\winsxs\x86_netfx-csharp_compiler_csc_b03f5f7f11d50a3a_6.1.7600.16385_none_d2fff1dae966863c\csc.exe
- C:\Windows\winsxs\x86_netfx-csharp_compiler_csc_b03f5f7f11d50a3a_6.1.7601.18523_none_d2d61856e9bcc9cf\csc.exe
- C:\Windows\winsxs\x86_netfx-csharp_compiler_csc_b03f5f7f11d50a3a_6.1.7601.22733_none_bc0971bd0363437d\csc.exe
- C:\Windows\winsxs\x86_netfx35linq-csharp_31bf3856ad364e35_6.1.7601.17514_none_193318f5726bf1d7\csc.exe
実際にコンパイル出来るかも試してみた。
以下のとおり、ソースにエラーは有るがコンパイラーは起動してる。
C# コンパイラ csc0.exe のコンパイルオプション一覧
最適化
- /filealign
出力ファイル内のセクションのサイズを指定します - /optimize
最適化を有効または無効にします
出力ファイル
- /doc
処理後のドキュメント コメントが出力される XML ファイルを指定します - /out
出力ファイルを指定します - /pdb
.pdb ファイルの名前と場所を指定します - /platform
出力プラットフォームを指定します - /preferreduilang
コンパイラの出力に言語を指定します - /target
5 個のオプションのうち 1 つを使用して出力ファイルの形式を指定する:
/target: appcontainerexe、/target: exe、/target: ライブラリ、/target: モジュール、/target: winexe、または /target: winmdobj。
.NET Framework アセンブリ
- /addmodule
このアセンブリの一部となる 1 つ以上のモジュールを指定します - /delaysign
公開キーのみ追加し、アセンブリの署名は保留するようコンパイラに指示します - /keycontainer
暗号化キー コンテナーの名前を指定します - /keyfile
暗号化キーの格納されたファイル名を指定します - /lib
/reference を使って参照されるアセンブリの場所を指定します - /nostdlib
標準ライブラリ (mscorlib.dll) をインポートしないようコンパイラに指示します - /reference
アセンブリを含むファイルからメタデータをインポートします
デバッグ/エラーのチェック
- /bugreport
バグを簡単に報告するための情報を含むファイルを作成します - /checked
データ型の境界をオーバーフローする整数算術演算の実行時に例外を発生するかどうかを指定します - /debug
デバッグ情報を出力するようコンパイラに指示します - /errorreport
エラー レポートの動作を設定します - /fullpaths
コンパイラ出力時のファイルへの絶対パスを指定します - /nowarn
指定された警告を生成しないようコンパイラに指示します - /warn
警告レベルを設定します - /warnaserror
警告をエラーとして扱います
プリプロセッサ
- /define
プリプロセッサ シンボルを定義します
Resources
- /link
指定したアセンブリ内の COM 型情報をプロジェクトで使用できるようにします - /linkresource
マネージ リソースへのリンクを作成します - /resource
.NET Framework リソースを出力ファイルに埋め込みます - /win32icon
出力ファイルに挿入する .ico ファイルを指定します - /win32res
出力ファイルに挿入する Win32 リソースを指定します
[その他]
- @
応答ファイルを指定します - /?
標準出力にコンパイラ オプションの一覧を表示します - /baseaddress
DLL を読み込む位置として推奨されるベース アドレスを指定します - /codepage
コンパイルですべてのソース コード ファイルに使用するコード ページを指定します - /help
標準出力にコンパイラ オプションの一覧を表示します - /highentropyva
実行可能ファイルが ASLR (ASLR) をサポートすることを指定します - /langversion
使用する言語のバージョンを指定します - /main
Main メソッドの場所を指定します - /noconfig
コンパイルに csc.rsp を使用しないようコンパイラに指示します - /nologo
コンパイラの開始メッセージが表示されないようにします - /recurse
コンパイルするソース ファイルをサブディレクトリで検索します - /subsystemversion
使用できる実行可能ファイルがサブシステムの最低限のバージョンを指定します - /unsafe
unsafe キーワードが使用されたコードのコンパイルを有効にします - /utf8output
UTF-8 エンコーディングを使用してコンパイラ出力を表示します。
参照: NET 開発
以上。