Erstellen über die Befehlszeile mit csc.exe

Aktualisiert: November 2007

Sie können den C#-Compiler aufrufen, indem Sie den Namen seiner ausführbaren Datei (CSC.EXE) an der Befehlszeile eingeben. Wenn Sie die Visual Studio-Eingabeaufforderung verwenden (als Verknüpfung im Startmenü unter Visual Studio-Tools verfügbar), werden alle erforderlichen Umgebungsvariablen für Sie festgelegt. Andernfalls müssen Sie die Pfadangabe anpassen, damit CSC.EXE aus jedem Unterverzeichnis auf dem Computer aufgerufen werden kann. Wenn Sie die Visual Studio-Eingabeaufforderung nicht verwenden, müssen Sie VSVARS32.BAT ausführen, um die entsprechenden Umgebungsvariablen zur Unterstützung von Befehlszeilenbuilds festzulegen. Weitere Informationen zu VSVARS32.BAT finden Sie unter Gewusst wie: Festlegen von Umgebungsvariablen.

Wenn Sie an einem Computer arbeiten, auf dem nur das Windows Software Development Kit (SDK) installiert ist, können Sie den C#-Compiler von der Befehlszeile aus verwenden. Hiefür müssen Sie die Option SDK-Eingabeaufforderung verwenden, die unter der Menüoption Microsoft .NET Framework SDK verfügbar ist.

Informationen zum Erstellen über die Entwicklungsumgebung finden Sie unter Gewusst wie: Vorbereiten und Verwalten von Builds.

Sie können auch MSBuild verwenden, um C#-Programme programmgesteuert zu erstellen. Weitere Informationen hierzu finden Sie unter MSBuild.

Die ausführbare Datei CSC.EXE befindet sich i. d. R. im Systemverzeichnis im Ordner Microsoft.NET\Framework\<Version>. Der Speicherort unterscheidet sich je nach Konfiguration auf den einzelnen Computern. Wenn mehr als eine Version von .NET Framework auf dem Computer installiert ist, sind mehrere Versionen dieser ausführbaren Datei auf dem Computer vorhanden. Weitere Informationen zu dieser Art von Installation finden Sie unter Installieren mehrerer .NET Framework-Versionen.

In diesem Thema werden folgende Themen behandelt:

Regeln für die Syntax der Befehlszeile

Beispielbefehlszeilen

Unterschiede zwischen der C#-Compiler- und der C++-Compiler-Ausgabe

Regeln für Befehlszeilensyntax für den C#-Compiler

Beim Interpretieren von Argumenten, die in der Befehlszeile des Betriebssystems angegeben werden, verwendet der C#-Compiler die folgenden Regeln:

  • Argumente werden durch einen Leerraum (Leerzeichen oder Tabstopp) abgegrenzt.

  • Die Einfügemarke (^) wird nicht als Escape- oder Trennzeichen erkannt. Das Zeichen wird vom Befehlszeilenparser im Betriebssystem verarbeitet, bevor es an das argv-Array im Programm übergeben wird.

  • Eine in Anführungszeichen eingeschlossene Zeichenfolge ("Zeichenfolge") wird als einzelnes Argument interpretiert, auch wenn darin Leerräume enthalten sind. Eine Zeichenfolge in Anführungszeichen kann in ein Argument eingebettet sein.

  • Wenn dem Anführungszeichen ein umgekehrter Schrägstrich (\") vorangestellt wird, wird diese Zeichenfolge als literales Anführungszeichen (") interpretiert.

  • Ein umgekehrter Schrägstrich wird als solcher interpretiert, sofern er nicht unmittelbar vor einem Anführungszeichen steht.

  • Wenn ein doppeltes Anführungszeichen auf eine gerade Anzahl umgekehrter Schrägstriche folgt, wird für jedes Paar umgekehrter Schrägstriche ein umgekehrter Schrägstrich im argv-Array platziert. Das Anführungszeichen wird als Zeichenfolgentrennzeichen interpretiert.

  • Wenn ein doppeltes Anführungszeichen auf eine ungerade Anzahl umgekehrter Schrägstriche folgt, wird für jedes Paar umgekehrter Schrägstriche ein umgekehrter Schrägstrich im argv-Array platziert. Das Anführungszeichen wird durch den übrig gebliebenen umgekehrten Schrägstrich maskiert. Hierdurch wird dem argv-Array ein echtes Anführungszeichen hinzugefügt.

Beispielbefehlszeilen für den C#-Compiler

  • Kompiliert File.cs, sodass File.exe entsteht:

    csc File.cs 
    
  • Kompiliert File.cs, sodass File.dll entsteht:

    csc /target:library File.cs
    
  • Kompiliert File.cs und erstellt My.exe:

    csc /out:My.exe File.cs
    
  • Kompiliert alle C#-Dateien im aktuellen Verzeichnis mit aktivierten Optimierungen und definiert das DEBUG-Symbol. Die Ausgabe lautet File2.exe:

    csc /define:DEBUG /optimize /out:File2.exe *.cs
    
  • Kompiliert alle C#-Dateien im aktuellen Verzeichnis, wodurch eine Debugversion von File2.dll erstellt wird. Es werden weder Logo noch Warnungen angezeigt:

    csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
    
  • Kompiliert alle C#-Dateien im aktuellen Verzeichnis zu Something.xyz (einer DLL-Datei):

    csc /target:library /out:Something.xyz *.cs
    

Unterschiede zwischen der C#-Compiler- und der C++-Compiler-Ausgabe

Durch den Aufruf des C#-Compilers werden keine Objektdateien (OBJ-Dateien) erstellt, stattdessen werden die Ausgabedateien direkt erstellt. Daher benötigt der C#-Compiler keinen Linker.

Siehe auch

Referenz

C#-Compileroptionen alphabetisch sortiert

C#-Compileroptionen nach Kategorien sortiert

Weitere Ressourcen

C#-Compileroptionen