Compilazione / esecuzione di un file sorgente C # nel prompt dei comandi


Risposte:


140

CSC.exe è il compilatore CSharp incluso in .NET Framework e può essere utilizzato per compilare dal prompt dei comandi. L'output può essere un ".exe" eseguibile, se si utilizza "/ target: exe" o una DLL; Se usi / target: library, CSC.exe si trova nella directory di .NET Framework,

ad esempio per .NET 3.5, c:\windows\Microsoft.NET\Framework\v3.5\.

Per eseguire, innanzitutto, aprire un prompt dei comandi, fare clic su "Start", quindi digitare cmd.exe.
Potrebbe quindi essere necessario eseguire il cd nella directory che contiene i file di origine.

Esegui il compilatore C # in questo modo:

  c:\windows\Microsoft.NET\Framework\v3.5\bin\csc.exe 
            /t:exe /out:MyApplication.exe MyApplication.cs  ...

(tutto su una riga)

Se hai più di un modulo sorgente da compilare, puoi metterlo sulla stessa riga di comando. Se si devono fare riferimento ad altri assiemi, utilizzare /r:AssemblyName.dll.

Assicurati di avere un metodo Main () statico definito in una delle tue classi, che funga da "punto di ingresso".

Per eseguire il file EXE risultante, digitare MyApplication, seguito <ENTER>utilizzando il prompt dei comandi.

Questo articolo su MSDN approfondisce le opzioni per il compilatore della riga di comando. Puoi incorporare risorse, impostare icone, firmare assiemi, tutto ciò che potresti fare in Visual Studio.

Se hai installato Visual Studio, nel "menu Start"; in Visual Studio Tools, è possibile aprire un "prompt dei comandi di Visual Studio", che imposterà tutte le variabili di ambiente e percorso richieste per la compilazione della riga di comando.

Sebbene sia molto utile saperlo, dovresti combinarlo con la conoscenza di una sorta di strumento di costruzione come NAnt , MSBuild , FinalBuilder ecc. Questi strumenti forniscono un ambiente di compilazione completo, non solo il compilatore di base.

Su un Mac

Su un Mac, la sintassi è simile, solo il compilatore C sharp è appena chiamato csc :

$ csc /target:exe /out:MyApplication.exe MyApplication.cs ...

Quindi eseguirlo:

$ mono MyApplication.exe

1
se ricordo bene, puoi compilare ed exe solo se hai una classe statica con un metodo Main.
cjk

Il compilatore ti avverte in questi giorni se non l'hai fatto, ma buon punto lo aggiungerò alla risposta, grazie.
Ash,

5
Questo e spettacolare. Necessario compilare una piccola app C # e non avere interesse a toccare Visual Studio. Grazie!
ColinM,

1
In Win10, ho trovato il mio lì:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson,

17

Un altro modo per compilare programmi C # (senza usare Visual Studio o senza averlo installato) è quello di creare una variabile utente nelle variabili di ambiente, vale a dire "PERCORSO".

Copia il seguente percorso in questa variabile:

"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"

o a seconda di quale .NET ha il tuo PC.

Quindi non devi menzionare l'intero percorso ogni volta che compili un codice. Basta usare

"C: \ Users \ Nomeutente \ Desktop> csc [opzioni] nomefile.cs"

o ovunque sia il percorso del tuo codice.

Ora sei a posto.


15

È possibile compilare un programma C #:

c:> csc Hello.cs

È possibile eseguire il programma

c:> Ciao


1
Cosa succede se utilizzo librerie aggiuntive? Ricevo errori che non vengono trovati negli assiemi ... Come risolvere questo problema?
Nikas Žalias,

Dovresti prima assicurarti che il percorso del compilatore sia nelle variabili di ambiente.
Dame Lyngdoh,

@ NikasŽalias. Ad esempio csc Hello.cs -langversion: latest -reference: System.Net.Http.dll
Alex Nolasco

8

Per l'ultima versione, aprire prima una finestra Powershell, andare in qualsiasi cartella (ad es. c:\projects\) Ed eseguire quanto segue

# Get nuget.exe command line
wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile nuget.exe

# Download the C# Roslyn compiler (just a few megs, no need to 'install')
.\nuget.exe install Microsoft.Net.Compilers

# Compiler, meet code
.\Microsoft.Net.Compilers.1.3.2\tools\csc.exe .\HelloWorld.cs

# Run it
.\HelloWorld.exe    

Un esempio HelloWorld.cs

using System;

public class HelloWorld {
    public static void Main() 
    {
        Console.WriteLine("Hello world!");
    }
}

Puoi anche provare il nuovo interprete C #;)

.\Microsoft.Net.Compilers.1.3.2\tools\csi.exe
> Console.WriteLine("Hello world!");
Hello world!

7

Sebbene sia sicuramente una buona cosa sapere come compilare dalla riga di comando, per la maggior parte del lavoro potrebbe essere più facile usare un IDE. L' edizione express di C # è gratuita e molto buona per i soldi ;-p

In alternativa, cose come snippy possono essere usate per eseguire frammenti di codice C #.

Infine, notare che la riga di comando è specifica dell'implementazione; per la SM, lo è csc; per mono , lo è gmcse gli amici .... Allo stesso modo, da eseguire: è solo "exename" per la versione MS, ma in genere "mono exename" per mono.

Infine, molti progetti vengono creati con strumenti di script di compilazione; MSBuild , NAnt , ecc.


3
Uso l'IDE. Ma dovevo saperlo. Non sembra giusto non saperlo! Grazie mille per la tua risposta
DragonBorn,

1
+1 per NAnt! LINQPad è ottimo per sperimentare frammenti di codice: linqpad.net
TrueWill

6

Ecco come installare MSBuild con il compilatore C # 7.0 autonomo che non è più incluso nell'ultimo .Net Framework 4.7:

È possibile installare un compilatore C # senza Visual Studio?

Quindi corri e basta

"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\csc.exe" MyApplication.cs

per compilare un singolo file sorgente in eseguibile.

Si noti inoltre che .Net Core non supporta la compilazione di file a sorgente singolo senza progetto preconfigurato.


5

LinqPad è un modo rapido per testare un po 'di codice C # ed è gratuito.


2

È possibile creare i file di classe nel prompt dei comandi VS (in modo che vengano caricate tutte le variabili di ambiente richieste), non la finestra di comando di Windows predefinita.

Per saperne di più sulla creazione della riga di comando con csc.exe (il compilatore), consulta questo articolo .


2

Se hai installato Visual Studio, hai il prompt dei comandi per sviluppatori per VS. Puoi facilmente creare il tuo programma usandocsc comando ed eseguire l'applicazione con il nome dell'applicazione nel prompt dei comandi dello sviluppatore.

È possibile aprire il prompt dei comandi per gli sviluppatori come indicato di seguito.

Start => Prompt dei comandi dello sviluppatore per VS

Spero che questo ti aiuti!


2

Aggiungi al percorso

C:\Windows\Microsoft.NET\Framework\v3.5

Compilare:

csc file.cs

Eseguire:

file

1

Una volta scritto il codice c # e salvato. È possibile utilizzare il prompt dei comandi per eseguirlo proprio come l'altro codice.

Al prompt dei comandi immettere la directory in cui si trova il file e digitare

Compilare:

mcs yourfilename.cs

Eseguire:

mono yourfilename.exe 

se vuoi che il tuo file .exe sia diverso con un nome diverso, digita

Compilare:

mcs yourfilename.cs -out:anyname.exe 

Eseguire:

mono anyname.exe 

Questo dovrebbe aiutare!


1

Nei sistemi Windows, utilizzare il comando csc <filname>.csnel prompt dei comandi mentre la directory corrente è in Microsoft Visual Studio \ <Anno> \ <Versione>

Ci sono due modi:

Utilizzando il prompt dei comandi:

  1. Start -> Prompt dei comandi
  2. Cambia la directory nella cartella di Visual Studio, usando il comando: cd C: \ Programmi (x86) \ Microsoft Visual Studio \ 2017 \ <Versione>
  3. Utilizzare il comando: csc /.cs

Utilizzo del prompt dei comandi per sviluppatori:

  1. Start -> Prompt dei comandi per sviluppatori per VS 2017 (qui la directory è già impostata sulla cartella di Visual Studio)

  2. Utilizzare il comando: csc /.cs

Spero che sia d'aiuto!


0

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn

qui puoi trovare il compilatore c # che supporta c # 7 altrimenti userà i compilatori .net 4 che supportano solo c # 5



0

Ho scritto un file batch CompileCS.cmdche consente di compilare (ed eventualmente eseguire) un file C #, puoi trovare la risposta completa incluso il programma batch 'CompileCS' qui .

Il suo utilizzo è semplice:

CompileCS /run GetDotNetVersion.cs[arg1] ... [arg9]

compilerà ed eseguirà GetDotNetVersion.cs - se vuoi solo compilarlo, ometti il /runparametro.

L'applicazione console GetDotNetVersion.csè presa da questa risposta .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.