Compilar / Ejecutar un archivo fuente de C # en el símbolo del sistema

Respuestas:

140

CSC.exe es el compilador CSharp incluido en .NET Framework y se puede usar para compilar desde el símbolo del sistema. El resultado puede ser un ".exe" ejecutable, si usa "/ target: exe", o una DLL; Si usa / target: library, CSC.exe se encuentra en el directorio de .NET Framework,

por ejemplo, para .NET 3,5, c:\windows\Microsoft.NET\Framework\v3.5\.

Para ejecutar, primero, abra un símbolo del sistema, haga clic en "Inicio", luego escriba cmd.exe.
Puede que tenga que ingresar el CD en el directorio que contiene sus archivos fuente.

Ejecute el compilador de C # así:

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

(todo en una línea)

Si tiene que compilar más de un módulo fuente, puede colocarlo en la misma línea de comando. Si tiene otros ensambles a los que hacer referencia, use /r:AssemblyName.dll.

Asegúrese de tener un método Main () estático definido en una de sus clases, para actuar como el "punto de entrada".

Para ejecutar el EXE resultante, escriba MyApplication, seguido del <ENTER>uso del símbolo del sistema.

Este artículo sobre MSDN entra en más detalles sobre las opciones para el compilador de línea de comandos. Puede incrustar recursos, configurar iconos, firmar ensamblajes: todo lo que puede hacer en Visual Studio.

Si tiene instalado Visual Studio, en el "menú Inicio"; En Visual Studio Tools, puede abrir un "símbolo del sistema de Visual Studio", que configurará todas las variables de entorno y ruta necesarias para la compilación de la línea de comandos.

Si bien es muy útil saber esto, debe combinarlo con el conocimiento de algún tipo de herramienta de compilación como NAnt , MSBuild , FinalBuilder , etc. Estas herramientas proporcionan un entorno de compilación completo, no solo el compilador básico.

En una Mac

En una Mac, la sintaxis es similar, solo el compilador C sharp solo se llama csc:

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

Luego para ejecutarlo:

$ mono MyApplication.exe
Ceniza
fuente
1
si no recuerdo mal, solo puedes compilar y exe si tienes una clase estática con un método Main.
cjk
El compilador le advierte estos días si no lo ha hecho, pero bueno, lo agregaré a la respuesta, gracias.
Ash
55
Esto es asombroso Necesario para compilar una pequeña aplicación C # y no tener interés en tocar Visual Studio. ¡Gracias!
ColinM
1
En Win10, encontré el mío allí:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson
17

Otra forma de compilar programas de C # (sin usar Visual Studio o sin tenerlo instalado) es crear una variable de usuario en variables de entorno, a saber, "PATH".

Copie la siguiente ruta en esta variable:

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

o dependiendo de qué .NET tenga tu PC.

Por lo tanto, no tiene que mencionar la ruta completa cada vez que compila un código. Simplemente use

"C: \ Users \ UserName \ Desktop> csc [opciones] filename.cs"

o donde sea que esté la ruta de su código.

Ahora estás listo para irte.

Aditya Garg
fuente
15

Puede compilar un programa C #:

c:> csc Hello.cs

Puedes ejecutar el programa

c:> Hola

Surendra
fuente
1
¿Qué pasa si uso bibliotecas adicionales? Recibo errores de que no se encuentran ensamblajes ... ¿Cómo solucionar esto?
Nikas Žalias
Primero debe asegurarse de que la ruta al compilador esté en las variables de entorno.
Dama Lyngdoh
@ NikasŽalias. Por ejemplo, csc Hello.cs -langversion: latest -reference: System.Net.Http.dll
Alex Nolasco
8

Para la última versión, primero abra una ventana de Powershell, vaya a cualquier carpeta (por ejemplo c:\projects\) y ejecute lo siguiente

# 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 ejemplo HelloWorld.cs

using System;

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

También puede probar el nuevo intérprete de C #;)

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

Si bien definitivamente es bueno saber cómo construir en la línea de comandos, para la mayoría del trabajo puede ser más fácil usar un IDE. La edición express de C # es gratuita y muy buena para el dinero;

Alternativamente, cosas como snippy se pueden usar para ejecutar fragmentos de código C #.

Finalmente, tenga en cuenta que la línea de comando es específica de la implementación; para MS, lo es csc; para mono , es gmcsy amigos ... Del mismo modo, para ejecutar: es solo "exename" para la versión MS, pero típicamente "mono exename" para mono.

Finalmente, muchos proyectos se compilan con herramientas de script de compilación; MSBuild , NAnt , etc.

Marc Gravell
fuente
3
Yo uso el IDE. Pero necesitaba saberlo. Simplemente no se siente bien no saber! Muchas gracias por su respuesta.
DragonBorn
1
+1 para NAnt! LINQPad es muy bueno para experimentar con fragmentos de código: linqpad.net
TrueWill
6

Aquí se explica cómo instalar MSBuild con el compilador independiente C # 7.0 que ya no está incluido en el último .Net Framework 4.7:

¿Es posible instalar un compilador de C # sin Visual Studio?

Entonces solo corre

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

para compilar un solo archivo fuente al ejecutable.

También tenga en cuenta que .Net Core no admite la compilación de archivos de origen único sin un proyecto preconfigurado.

Vadzim
fuente
5

LinqPad es una forma rápida de probar un código C #, y es gratis.

nullsteph
fuente
2

Puede crear sus archivos de clase dentro del símbolo del sistema VS (para que se carguen todas las variables de entorno requeridas), no la ventana de comandos predeterminada de Windows.

Para obtener más información sobre la creación de línea de comandos con csc.exe (el compilador), consulte este artículo .

Cerebro
fuente
2

Si ha instalado Visual Studio, entonces tiene el símbolo del sistema de desarrollador para VS. Puede construir fácilmente su programa usando el csccomando y ejecutar su aplicación con el nombre de la aplicación dentro del símbolo del sistema del desarrollador.

Puede abrir el símbolo del sistema del desarrollador como se indica a continuación.

Inicio => Símbolo del sistema de desarrollador para VS

¡Espero que esto ayude!

hackerbuddy
fuente
2

Agregar a ruta

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

Compilar:

csc file.cs

Ejecutar:

file
Rafiul Islam
fuente
1

Una vez que escriba el código C # y guárdelo. Puede usar el símbolo del sistema para ejecutarlo al igual que el otro código.

En el símbolo del sistema, ingrese el directorio en el que se encuentra su archivo y escriba

Compilar:

mcs yourfilename.cs

Ejecutar:

mono yourfilename.exe 

si desea que su archivo .exe sea diferente con un nombre diferente, escriba

Compilar:

mcs yourfilename.cs -out:anyname.exe 

Ejecutar:

mono anyname.exe 

Esto debería ayudar!

Joe
fuente
1

En sistemas Windows, use el comando csc <filname>.csen el símbolo del sistema mientras el directorio actual está en Microsoft Visual Studio \ <Year> \ <Version>

Hay dos maneras:

Usando el símbolo del sistema:

  1. Inicio -> Símbolo del sistema
  2. Cambie el directorio a la carpeta de Visual Studio, utilizando el comando: cd C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ <Version>
  3. Use el comando: csc /.cs

Uso del símbolo del sistema del desarrollador:

  1. Inicio -> Símbolo del sistema del desarrollador para VS 2017 (Aquí el directorio ya está configurado en la carpeta de Visual Studio)

  2. Use el comando: csc /.cs

¡Espero eso ayude!

usuario3789482
fuente
0

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

aquí es donde puede encontrar el compilador de c # que admite c # 7; de lo contrario, utilizará los compiladores .net 4 que solo admiten c # 5

Mohamed Fathallah
fuente
0

He escrito un archivo por lotes CompileCS.cmdque permite compilar (y opcionalmente ejecutar) un archivo C #, puede encontrar la respuesta completa, incluido el programa por lotes 'CompileCS' aquí .

Su uso es simple:

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

compilará y ejecutará GetDotNetVersion.cs; si solo desea compilarlo, omita el /runparámetro.

La aplicación de consola GetDotNetVersion.csse toma de esta respuesta .

Mate
fuente