Erstellen über die Befehlszeile mit csc.exeCommand-line build with csc.exe

Sie können den C#-Compiler aufrufen, indem Sie den Namen seiner ausführbaren Datei (csc.exe) in der Befehlszeile eingeben.You can invoke the C# compiler by typing the name of its executable file (csc.exe) at a command prompt.

Wenn Sie das Fenster Developer-Eingabeaufforderung für Visual Studio verwenden, werden alle erforderlichen Umgebungsvariablen für Sie festgelegt.If you use the Developer Command Prompt for Visual Studio window, all the necessary environment variables are set for you. Weitere Informationen zum Zugreifen auf dieses Tool finden Sie unter Developer-Eingabeaufforderung für Visual Studio.For information on how to access this tool, see the Developer Command Prompt for Visual Studio topic.

Wenn Sie ein standardmäßiges Eingabeaufforderungsfenster verwenden, müssen Sie die Pfadangabe anpassen, bevor Sie csc.exe aus einem Unterverzeichnis auf dem Computer aufrufen können.If you use a standard Command Prompt window, you must adjust your path before you can invoke csc.exe from any subdirectory on your computer. Außerdem müssen Sie vsvars32.bat ausführen, um die entsprechenden Umgebungsvariablen zur Unterstützung von Befehlszeilenbuilds festzulegen.You also must run vsvars32.bat to set the appropriate environment variables to support command-line builds. Weitere Informationen zu vsvars32.bat, einschließlich Anweisungen zum Suchen und Ausführen, finden Sie unter Vorgehensweise: Festlegen von Umgebungsvariablen für die Visual Studio-Befehlszeile.For more information about vsvars32.bat, including instructions for how to find and run it, see How to: Set Environment Variables for the Visual Studio Command Line.

Wenn Sie auf einem Computer arbeiten, auf dem nur das Windows Software Development Kit (SDK)Windows Software Development Kit (SDK) installiert ist, können Sie den C#-Compiler von der SDK-Eingabeaufforderung aus verwenden. Diese öffnen Sie über die Menüoption Microsoft .NET Framework SDK.If you're working on a computer that has only the Windows Software Development Kit (SDK)Windows Software Development Kit (SDK), you can use the C# compiler at the SDK Command Prompt, which you open from the Microsoft .NET Framework SDK menu option.

Sie können auch MSBuild verwenden, um C#-Programme programmgesteuert zu erstellen.You can also use MSBuild to build C# programs programmatically. Weitere Informationen finden Sie unter MSBuild.For more information, see MSBuild.

Die ausführbare Datei csc.exe befindet sich in der Regel im Windows-Verzeichnis im Ordner Microsoft.NET\Framework\<Version>.The csc.exe executable file usually is located in the Microsoft.NET\Framework\<Version> folder under the Windows directory. Der Speicherort unterscheidet sich je nach Konfiguration auf den einzelnen Computern.Its location might vary depending on the exact configuration of a particular computer. Wenn mehr als eine Version von .NET Framework auf dem Computer installiert ist, werden Sie mehrere Versionen dieser Datei finden.If more than one version of the .NET Framework is installed on your computer, you'll find multiple versions of this file. Weitere Informationen zu dieser Art von Installation finden Sie unter How to: determine which versions of the .NET Framework are installed (Vorgehensweise: Bestimmen der installierten .NET Framework-Version).For more information about such installations, see How to: determine which versions of the .NET Framework are installed.

Tipp

Wenn Sie ein Projekt mit der Visual Studio-IDE erstellen, können Sie den Befehl csc und seine zugeordneten Compileroptionen im Fenster Ausgabe anzeigen.When you build a project by using the Visual Studio IDE, you can display the csc command and its associated compiler options in the Output window. Um diese Informationen anzuzeigen, befolgen Sie die Anweisungen in Vorgehensweise: Anzeigen, Speichern und Konfigurieren von Buildprotokolldateien, in denen erläutert wird, wie der Ausführlichkeitsgrad der Protokolldaten in Normal oder Detailliert geändert wird.To display this information, follow the instructions in How to: View, Save, and Configure Build Log Files to change the verbosity level of the log data to Normal or Detailed. Nachdem Sie das Projekt neu erstellt haben, durchsuchen Sie das Fenster Ausgabe nach csc nach, um den Aufruf des C#-Compilers zu finden.After you rebuild your project, search the Output window for csc to find the invocation of the C# compiler.

InhaltIn this topic

Regeln für Befehlszeilensyntax für den C#-CompilerRules for command-line syntax for the C# compiler

Beim Interpretieren von Argumenten, die in der Befehlszeile des Betriebssystems angegeben werden, verwendet der C#-Compiler die folgenden Regeln:The C# compiler uses the following rules when it interprets arguments given on the operating system command line:

  • Argumente werden durch einen Leerraum (Leerzeichen oder Tabstopp) abgegrenzt.Arguments are delimited by white space, which is either a space or a tab.

  • Die Einfügemarke (^) wird nicht als Escape- oder Trennzeichen erkannt.The caret character (^) is not recognized as an escape character or delimiter. Das Zeichen wird vom Befehlszeilenparser im Betriebssystem verarbeitet, bevor es an das argv-Array im Programm übergeben wird.The character is handled by the command-line parser in the operating system before it's passed to the argv array in the program.

  • Eine in Anführungszeichen eingeschlossene Zeichenfolge ("Zeichenfolge") wird als einzelnes Argument interpretiert, auch wenn darin Leerräume enthalten sind.A string enclosed in double quotation marks ("string") is interpreted as a single argument, regardless of white space that is contained within. Eine Zeichenfolge in Anführungszeichen kann in ein Argument eingebettet sein.A quoted string can be embedded in an argument.

  • Wenn dem Anführungszeichen ein umgekehrter Schrägstrich (\") vorangestellt wird, wird diese Zeichenfolge als literales Anführungszeichen (") interpretiert.A double quotation mark preceded by a backslash (\") is interpreted as a literal double quotation mark character (").

  • Ein umgekehrter Schrägstrich wird als solcher interpretiert, sofern er nicht unmittelbar vor einem Anführungszeichen steht.Backslashes are interpreted literally, unless they immediately precede a double quotation mark.

  • 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.If an even number of backslashes is followed by a double quotation mark, one backslash is put in the argv array for every pair of backslashes, and the double quotation mark is interpreted as a string delimiter.

  • 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.If an odd number of backslashes is followed by a double quotation mark, one backslash is put in the argv array for every pair of backslashes, and the double quotation mark is "escaped" by the remaining backslash. Hierdurch wird dem argv-Array ein echtes Anführungszeichen hinzugefügt.This causes a literal double quotation mark (") to be added in argv.

Beispielbefehlszeilen für den C#-CompilerSample command lines for the C# compiler

  • Kompiliert file.cs, sodass file.exe entsteht:Compiles File.cs producing File.exe:
csc File.cs 
  • Kompiliert file.cs, sodass file.exe entsteht:Compiles File.cs producing File.dll:
csc /target:library File.cs
  • Kompiliert file.cs und erstellt my.exe:Compiles File.cs and creates My.exe:
csc /out:My.exe File.cs
  • Kompiliert alle C#-Dateien im aktuellen Verzeichnis mit aktivierten Optimierungen und definiert das DEBUG-Symbol.Compiles all the C# files in the current directory with optimizations enabled and defines the DEBUG symbol. Die Ausgabe lautet File2.exe:The output is 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.Compiles all the C# files in the current directory producing a debug version of File2.dll. Es werden weder Logo noch Warnungen angezeigt:No logo and no warnings are displayed:
csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
  • Kompiliert alle C#-Dateien im aktuellen Verzeichnis zu Name.xyz (eine DLL-Datei):Compiles all the C# files in the current directory to Something.xyz (a DLL):
csc /target:library /out:Something.xyz *.cs

Unterschiede zwischen der C#-Compiler- und der C++-Compiler-AusgabeDifferences between C# compiler and C++ compiler output

Durch den Aufruf des C#-Compilers werden keine Objektdateien (.obj) erstellt, stattdessen werden die Ausgabedateien direkt erstellt.There are no object (.obj) files created as a result of invoking the C# compiler; output files are created directly. Daher benötigt der C#-Compiler keinen Linker.As a result of this, the C# compiler does not need a linker.

Siehe auchSee also

C#-CompileroptionenC# Compiler Options
C#-Compileroptionen alphabetisch sortiertC# Compiler Options Listed Alphabetically
C#-Compileroptionen nach Kategorien sortiertC# Compiler Options Listed by Category
Main() und BefehlszeilenargumenteMain() and Command-Line Arguments
BefehlszeilenargumenteCommand-Line Arguments
Vorgehensweise: Anzeigen von BefehlszeilenargumentenHow to: Display Command-Line Arguments
Gewusst wie: Zugreifen auf Befehlszeilenargumente mithilfe von foreachHow to: Access Command-Line Arguments Using foreach
Main()-RückgabewerteMain() Return Values