/target (C#-Compileroptionen)
Sie haben vier Möglichkeiten, die /target-Compileroption festzulegen:
/target:exe
Erstellt eine EXE-Datei./target:library
Erstellt eine Codebibliothek./target:module
Erstellt ein Modul./target:winexe
Erstellt ein Windows-Programm.
Sofern Sie nicht /target:module angeben, bewirkt /target, dass ein .NET Framework-Assemblymanifest in eine Ausgabedatei platziert wird. Weitere Informationen finden Sie unter Assemblys in der Common Language Runtime (CLR) sowie unter Allgemeine Attribute.
Das Assemblymanifest wird in der ersten EXE-Ausgabedatei der Kompilierung platziert oder (falls keine EXE-Ausgabedatei vorhanden ist) in der ersten DLL. In der folgenden Befehlszeile wird das Manifest beispielsweise in 1.exe platziert:
csc /out:1.exe t1.cs /out:2.netmodule t2.cs
Der Compiler erstellt lediglich ein Assemblymanifest pro Kompilierung. Informationen über alle Dateien in einer Kompilierung werden in das Assemblymanifest geschrieben. Alle Ausgabedateien mit Ausnahme der mit /target:module erstellten Dateien können ein Assemblymanifest enthalten. Beim Erstellen von mehreren Ausgabedateien über die Befehlszeile kann nur ein Assemblymanifest generiert werden, und dieses muss in der ersten Ausgabedatei gespeichert werden, die in der Befehlszeile genannt wird. Unabhängig davon, worum es sich bei der ersten Ausgabedatei handelt (/target:exe, /target:winexe, /target:library oder /target:module), müssen alle weiteren in derselben Kompilierung erzeugten Ausgabedateien Module sein (/target:module).
Wenn Sie eine Assembly erstellen, können Sie festlegen, dass der Code vollständig oder teilweise mit dem CLSCompliantAttribute-Attribut CLS-kompatibel ist.
// 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() {}
}
Weitere Informationen zum programmgesteuerten Festlegen dieser Compileroption finden Sie unter OutputType.