cscコマンド引数について調べた
自己主張が激しくてウザい。
情報源
cscコマンド
csc Program.cs
chmod 755 Program.exe ./Program.exe
Hello world
ソースコード
Program.cs
class Program { static void Main() => System.Console.WriteLine("Hello world"); }
使いそうな引数
引数 | 概要 |
---|---|
-recurse |
再帰的にソースコードファイルを探す |
-nologo |
ロゴ出力をなくす |
csc -nologo -recurse:*.cs chmod 755 Program.exe ./Program.exe
ヘルプ
引数 | 概要 |
---|---|
-? , -help |
引数一覧を表示する。 |
入力系
引数 | 概要 |
---|---|
-lib |
参照するDLLのパス |
-reference |
参照するDLL |
-addmodule |
参照するDLL(実行時exeと同階層に必要なDLL) |
出力系
引数 | 概要 |
---|---|
-out |
出力する実行ファイルの名前 |
-doc |
出力するドキュメントのファイル名 |
-optimize |
実行ファイルを最適化する。 |
-target |
実行ファイルの形式を決める。 |
実行ファイル形式
使いそうなのは以下。module
って何?
引数 | 概要 |
---|---|
/target:exe |
.exe ファイルを作成する場合。 |
/target:library |
コード ライブラリを作成する場合。 |
/target:module |
モジュールを作成する場合。 |
以下は使わないだろう。
引数 | 概要 |
---|---|
/target:appcontainerexe |
Windows 8.x ストア アプリの .exe ファイルを作成する場合。 |
/target:winexe |
Windows プログラムを作成する場合。 |
/target:winmdobj |
.winmdobj 中間ファイルを作成する場合。 |
所感
Microsoftの自己主張がウザい。
自己主張ウザい
-nologo
しないかぎり不要な出力が毎回される。クソウザい。ヘルプのときだけ出せばいいと思う。コンパイルするたびに「俺だよ俺、ねぇねぇすごいでしょ?」とかされるのウザい。毎回コマンドに-nologo
書くの面倒。余計な仕事を増やさないでくれ。
Microsoft (R) Visual C# Compiler version 3.100.19.26603 (9d80dea7) Copyright (C) Microsoft Corporation. All rights reserved.
実行ファイル形式もWindowsだけ多数の種類がある。面倒くせぇ。実行ファイルすら使い分けねばならないのかよ。面倒くさそう。よかったLinuxで。
独自形式ウザい
コマンドの形式が-param value
でなく-param:value
なのもウザい。一般的な形式に合わせろ。自動化しづらくなるだろ。値の分離処理を実装しないと取得できないじゃん。
シンプルにしたい
exeをビルドして実行するまでを一発でやってくれるスクリプトを書きたい。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13 ※
- bash 4.4.12(1)-release ※
- SQLite 3.29.0 ※
- C# dotnet 3.0.100 ※
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux