Compilazione dalla riga di comando con csc.exeCommand-line build with csc.exe

È possibile richiamare il compilatore C# digitando il nome del relativo file eseguibile (csc.exe) da un prompt dei comandi.You can invoke the C# compiler by typing the name of its executable file (csc.exe) at a command prompt.

Se si usa la finestra Prompt dei comandi per gli sviluppatori per Visual Studio, tutte le variabili di ambiente necessarie sono impostate automaticamente.If you use the Developer Command Prompt for Visual Studio window, all the necessary environment variables are set for you. Per informazioni su come accedere a questo strumento, vedere Developer Command Prompt for Visual Studio (Prompt dei comandi per gli sviluppatori per Visual Studio).For information on how to access this tool, see the Developer Command Prompt for Visual Studio topic.

Se si usa una finestra del prompt dei comandi standard, è necessario modificare il percorso prima di poter richiamare csc.exe da qualsiasi sottodirectory del computer.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. Si deve anche eseguire vsvars32.bat per impostare le variabili di ambiente necessarie per supportare le compilazioni da riga di comando.You also must run vsvars32.bat to set the appropriate environment variables to support command-line builds. Per altre informazioni su vsvars32.bat, incluse istruzioni per trovare ed eseguire il file, vedere How to: Set Environment Variables for the Visual Studio Command Line (Procedura: Impostare le variabili di ambiente per la riga di comando di Visual Studio).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.

Se nel computer in uso è disponibile solo Windows Software Development Kit (SDK)Windows Software Development Kit (SDK), è possibile usare il compilatore C# al Prompt dei comandi di SDK che viene visualizzato dall'opzione di menu 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.

È inoltre possibile utilizzare MSBuild per compilare programmi C# a livello di codice.You can also use MSBuild to build C# programs programmatically. Per altre informazioni, vedere MSBuild.For more information, see MSBuild.

Il file eseguibile csc.exe si trova in genere nella cartella Microsoft.NET\Framework\<versione della directory Windows.The csc.exe executable file usually is located in the Microsoft.NET\Framework\<Version> folder under the Windows directory. La posizione del file può variare in base all'esatta configurazione di un determinato computer.Its location might vary depending on the exact configuration of a particular computer. Se nel computer sono installate più versioni di .NET Framework, saranno disponibili più versioni di questo file.If more than one version of the .NET Framework is installed on your computer, you'll find multiple versions of this file. Per altre informazioni su queste installazioni, vedere How to: determine which versions of the .NET Framework are installed (Procedura: Determinare le versioni di .NET Framework installate).For more information about such installations, see How to: determine which versions of the .NET Framework are installed.

Suggerimento

Quando si compila un progetto usando l'IDE di Visual Studio, è possibile visualizzare il comando csc e le relative opzioni del compilatore associate nella finestra Output.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. Per visualizzare queste informazioni, seguire le istruzioni in Procedura: Visualizzare, salvare e configurare file di log di compilazione per impostare il livello di dettaglio dei dati di log su Normale o Dettagliato.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. Al termine della ricompilazione del progetto, nella finestra Output cercare csc per trovare la chiamata del compilatore C#.After you rebuild your project, search the Output window for csc to find the invocation of the C# compiler.

Contenuto dell'argomentoIn this topic

Regole per la sintassi della riga di comando per il compilatore C#Rules for command-line syntax for the C# compiler

Il compilatore C# usa le regole seguenti per interpretare gli argomenti visualizzati nella riga di comando del sistema operativo:The C# compiler uses the following rules when it interprets arguments given on the operating system command line:

  • Gli argomenti sono delimitati da spazi vuoti, ovvero da uno spazio o da una tabulazione.Arguments are delimited by white space, which is either a space or a tab.

  • L'accento circonflesso (^) non viene riconosciuto come carattere di escape o delimitatore.The caret character (^) is not recognized as an escape character or delimiter. Il carattere viene gestito dal parser della riga di comando nel sistema operativo prima di essere passato alla matrice argv del programma.The character is handled by the command-line parser in the operating system before it's passed to the argv array in the program.

  • Una stringa racchiusa tra virgolette doppie ("string") viene interpretata come argomento singolo, indipendentemente dalla presenza di spazi al suo interno.A string enclosed in double quotation marks ("string") is interpreted as a single argument, regardless of white space that is contained within. Una stringa tra virgolette può essere incorporata in un argomento.A quoted string can be embedded in an argument.

  • Le virgolette doppie precedute da una barra rovesciata (\") vengono interpretate come carattere letterale virgolette doppie (").A double quotation mark preceded by a backslash (\") is interpreted as a literal double quotation mark character (").

  • Le barre rovesciate vengono interpretate letteralmente, a meno che non precedano virgolette doppie.Backslashes are interpreted literally, unless they immediately precede a double quotation mark.

  • Se un numero pari di barre rovesciate è seguito da virgolette doppie, viene inserita solo una barra rovesciata nella matrice argv per ogni coppia di barre rovesciate e le virgolette doppie vengono interpretate come delimitatore di stringa.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.

  • Se un numero dispari di barre rovesciate è seguito da virgolette doppie, viene inserita solo una barra rovesciata nella matrice argv per ogni coppia di barre rovesciate e le virgolette doppie vengono "ignorate" dalla barra rovesciata rimanente.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. Questo determina l'aggiunta di un valore letterale virgolette doppie (") in argv.This causes a literal double quotation mark (") to be added in argv.

Righe di comando di esempio per il compilatore C#Sample command lines for the C# compiler

  • Compila File.cs e crea File.exe:Compiles File.cs producing File.exe:
csc File.cs 
  • Compila File.cs e crea File.dll:Compiles File.cs producing File.dll:
csc -target:library File.cs
  • Compila File.cs e crea My.exe:Compiles File.cs and creates My.exe:
csc -out:My.exe File.cs
  • Compila tutti i file C# della directory corrente con le ottimizzazioni attivate e definisce il simbolo DEBUG.Compiles all the C# files in the current directory with optimizations enabled and defines the DEBUG symbol. L'output è il File2.exe:The output is File2.exe:
csc -define:DEBUG -optimize -out:File2.exe *.cs
  • Compila tutti i file C# della directory corrente generando una versione di debug del file File2.dll.Compiles all the C# files in the current directory producing a debug version of File2.dll. Non viene visualizzato nessun logo e nessun avviso:No logo and no warnings are displayed:
csc -target:library -out:File2.dll -warn:0 -nologo -debug *.cs
  • Compila tutti i file C# della directory corrente creando un file Something.xyz (una DLL):Compiles all the C# files in the current directory to Something.xyz (a DLL):
csc -target:library -out:Something.xyz *.cs

Differenze tra output del compilatore C# e output del compilatore C++Differences between C# compiler and C++ compiler output

Dopo il richiamo del compilatore C# non viene creato alcun file oggetto (.obj). I file di output vengono creati direttamente.There are no object (.obj) files created as a result of invoking the C# compiler; output files are created directly. Di conseguenza il compilatore C# non richiede un linker.As a result of this, the C# compiler does not need a linker.

Vedere ancheSee also

Opzioni del compilatore C#C# Compiler Options
Opzioni del compilatore C# in ordine alfabeticoC# Compiler Options Listed Alphabetically
Opzioni del compilatore C# elencate per categoriaC# Compiler Options Listed by Category
Main() e argomenti della riga di comandoMain() and Command-Line Arguments
Argomenti della riga di comandoCommand-Line Arguments
Procedura: Visualizzare gli argomenti della riga di comandoHow to: Display Command-Line Arguments
Procedura: Accedere agli argomenti della riga di comando usando foreachHow to: Access Command-Line Arguments Using foreach
Valori restituiti da Main()Main() Return Values