コマンドライン引数またはプロジェクトのプロパティとして設定できる
まずVS2005(C#2.0)コンパイラでの変更点
/errorreport
コンパイラ自身のエラーを報告するか。めったにエラーに遭遇しない
/incrementalの削除
変更箇所だけコンパイルするオプションが削除された
/keycontainer, /keyfile
暗号化キーコンテナと暗号化キーファイルの名前を指定
指定されたコンテナまたはファイルの公開キーは、アセンブリのマニフェストに追加される
そして、最終的なアセンブリが秘密キーで署名されることによって、共有可能なコンポーネントが生成される
/langversion
C#のバージョンではなくて、ISO-1, ISO-2, defaultを指定
規格に合ったコードを利用するための機能
/linkresourceにアクセシビリティを指定できる
リソースのアクセシビリティ(public, private)の指定
/linkresource:ファイル名[,識別子[,アクセス修飾子]]
/moduleassemblyname
モジュール作成時に、外部アセンブリからフレンドアセンブリとして参照される名前を指定
モジュールとは、.netmoduleという拡張子で、アセンブリの構成要素として取り込めるもの
InternalsVisibleTo属性ではアセンブリ名を指定できるが、モジュール単位でコンパイルする場合にはコンパイル時のアセンブリ名確定が為されない。
そこでこのオプションを使用する
デバッグ情報ファイル(.pdb)は、デフォルトでは出力ファイル(.exe, .dll)と同一のディレクトリに作成されるが、
このオプションではこのディレクトリを指定できる
/platform
x86, Itanium, x64, anycpu(既定値)
32bit/64bitの相違が特に問題となる
VS2008(C#3.0)コンパイラの新機能
/win32Manifest, /noWin32Manifest
実行可能ファイルに埋め込むユーザ定義のWin32アプリケーションマニフェストファイルを指定
これはVistaで管理者権限、UACを扱うのに必要
/noWin32Manifestでは、マニフェストの埋め込みをしないことを指定