Compilazione dalla riga di comando con csc.exe

È possibile richiamare il compilatore C# digitando il nome del file eseguibile corrispondente (csc.exe) nella riga di comando. Se si utilizza il prompt dei comandi di Visual Studio, disponibile come collegamento nel menu Start di Strumenti di Visual Studio, tutte le variabili di ambiente necessarie verranno impostate automaticamente. Altrimenti, per richiamare il file csc.exe da qualsiasi sottodirectory del computer, è necessario modificare il percorso. Se non si utilizza il prompt dei comandi di Visual Studio, è necessario eseguire il file vsvars32.bat per impostare le variabili di ambiente appropriate in modo che supportino le compilazioni dalla riga di comando. Per ulteriori informazioni su vsvars32.bat, vedere Procedura: impostare le variabili di ambiente.

Se nel computer in uso è disponibile solo Windows Software Development Kit (SDK), è possibile utilizzare il compilatore C# dalla riga di comando se si sceglie Prompt dei comandi di SDK, disponibile dall'opzione di menu Microsoft .NET Framework SDK.

Per compilare nell'ambiente di sviluppo, vedere Procedura: preparare e gestire compilazioni.

È possibile utilizzare anche MSBuild per compilare a livello di codice programmi C#. Per ulteriori informazioni, vedere la classe MSBuild.

Il file eseguibile csc.exe si trova in genere nella cartella Microsoft.NET\Framework\<version> della directory di sistema. La posizione del file può variare in base alla specifica configurazione di ogni computer. Se nel computer sono installate più versioni di .NET Framework, saranno presenti più versioni del file eseguibile. Per ulteriori informazioni su tali installazioni, vedere Determinazione della versione di .NET Framework installata.

Questo argomento include:

Regole per la sintassi della riga di comando

Esempi di righe di comando

Differenze tra gli output del compilatore C# e del compilatore C++

Regole per la sintassi della riga di comando per il compilatore C#

Gli argomenti forniti alla riga di comando del sistema operativo vengono interpretati nel compilatore C# sulla base alle seguenti regole:

  • Gli argomenti sono delimitati da spazi vuoti, ovvero da uno spazio o da una tabulazione.

  • L'accento circonflesso (^) non viene riconosciuto come carattere di escape o delimitatore. Il carattere viene completamente gestito dal parser della riga di comando nel sistema operativo prima di essere passato alla matrice argv nel programma.

  • Una stringa racchiusa tra virgolette doppie ("stringa") viene interpretata come argomento singolo, indipendentemente dalla presenza di spazi al suo interno. Una stringa tra virgolette può essere incorporata in un argomento.

  • Le virgolette doppie precedute da una barra rovesciata (\") vengono interpretate letteralmente come il carattere (").

  • Le barre rovesciate vengono interpretate letteralmente, a meno che non precedano virgolette doppie.

  • Se le virgolette doppie seguono un numero pari di barre rovesciate, per ciascuna coppia di barre rovesciate viene inserita nella matrice argv una barra rovesciata e le virgolette doppie vengono interpretate come delimitatori di stringa.

  • Se le virgolette doppie seguono un numero dispari di barre rovesciate, per ciascuna coppia di barre rovesciate viene inserita nella matrice argv una barra rovesciata e le virgolette doppie vengono ignorate dalla barra rovesciata rimanente. Di conseguenza verranno aggiunte le virgolette doppie (") letterali alla matrice argv.

Righe di comando di esempio per il compilatore C#

  • Consente di compilare File.cs generando File.exe:

    csc File.cs 
    
  • Consente di compilare File.cs generando File.dll:

    csc /target:library File.cs
    
  • Consente di compilare File.cs e crea My.exe:

    csc /out:My.exe File.cs
    
  • Consente di compilare tutti i file C# della directory corrente con le ottimizzazioni attive e di definire il simbolo DEBUG. L'output è File2.exe:

    csc /define:DEBUG /optimize /out:File2.exe *.cs
    
  • Consente di compilare tutti i file C# della directory corrente generando una versione di debug di File2.dll. Non vengono visualizzati né logo, né avvisi.

    csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
    
  • Consente di compilare tutti i file C# della directory corrente in Something.xyz (una DLL):

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

Differenze tra gli output del compilatore C# e del compilatore C++

In seguito al richiamo del compilatore C# non viene creato alcun file oggetto con estensione OBJ. I file di output vengono creati direttamente. Di conseguenza il compilatore C# non richiede alcun linker.

Vedere anche

Riferimenti

Opzioni del compilatore C# in ordine alfabetico

Opzioni del compilatore C# elencate per categoria

Altre risorse

Opzioni del compilatore C#