/target (C# コンパイラ オプション)

/target コンパイラ オプションを指定するには、次の 4 つの形式のいずれかを使用します。

/target:module を指定しない限り、/target を使用すると、.NET Framework のアセンブリ マニフェストが出力ファイルに組み込まれます。 詳細については、「共通言語ランタイムのアセンブリ」および「共通の属性」を参照してください。

アセンブリ マニフェストは、コンパイル中の最初の .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) にする必要があります。

アセンブリを作成する場合は、CLSCompliantAttribute 属性を使用して、コードのすべてまたは一部が 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」を参照してください。

参照

その他の技術情報

C# コンパイラ オプション

プロジェクト プロパティ (Visual Studio)