/target (出力ファイル形式の指定) (C# コンパイラ オプション)
更新 : 2007 年 11 月
/target コンパイラ オプションを指定するには、次の 4 つの形式のいずれかを使用します。
/target:exe
.exe ファイルを作成する場合。/target:library
コード ライブラリを作成する場合。/target:module
モジュールを作成する場合。/target:winexe
Windows プログラムを作成する場合。
/target:module を指定しない限り、/target を使用すると、.NET Framework のアセンブリ マニフェストが出力ファイルに組み込まれます。詳細については、「共通言語ランタイムのアセンブリ」および「グローバル属性 (C# プログラミング ガイド)」を参照してください。
アセンブリ マニフェストは、コンパイル中の最初の .exe 出力ファイルに組み込まれます。.exe 出力ファイルがない場合には、最初の DLL ファイルに組み込まれます。たとえば、次のコマンド ラインでは、マニフェストは 1.exe に組み込まれます。
csc /out:1.exe t1.cs /out:2.netmodule t2.cs
コンパイラの 1 回のコンパイルで作成されるアセンブリ マニフェストは 1 つだけです。コンパイルにおけるすべてのファイルの情報は、アセンブリ マニフェストに含まれます。/target:module 以外で作成されたすべての出力ファイルは、アセンブリ マニフェストを含むことができます。コマンド ラインで複数の出力ファイルを生成するときは、アセンブリ マニフェストが 1 つだけ作成されます。このアセンブリ マニフェストは、コマンド ラインで指定した最初の出力ファイルに含める必要があります。最初の出力ファイル (/target:exe、/target:winexe、/target:library、または /target:module) にかかわらず、同じコンパイル処理で作成する他の出力ファイルはモジュール (/target:module) にする必要があります。
アセンブリを作成する場合は、コードのすべてまたは一部を CLSCompliant 属性に準拠した CLS に指定できます。
// target_clscompliant.cs
[assembly:System.CLSCompliant(true)] // specify assembly compliance
[System.CLSCompliant(false)] // specify compliance for an element
public class TestClass
{
public static void Main() {}
}
このコンパイラ オプションをプログラムで設定する方法の詳細については、「OutputType」を参照してください。