Compilar la línea de comandos con csc.exe

Puede invocar el compilador de C# escribiendo el nombre de su archivo ejecutable (csc.exe) en la línea de comandos. Si utiliza el Símbolo del sistema de Visual Studio (disponible como acceso directo en el menú Inicio, Visual Studio Tools), todas las variables de entorno necesarias se establecen automáticamente. De lo contrario, debe ajustar la ruta de acceso para habilitar csc.exe para que se invoque desde cualquier subdirectorio del equipo. Si no se utiliza el Símbolo del sistema de Visual Studio, debe ejecutar vsvars32.bat a fin de establecer las variables de entorno adecuadas para que se admitan compilaciones desde la línea de comandos. Para obtener más información sobre vsvars32.bat, vea Cómo: Establecer variables de entorno.

Cuando trabaje en un equipo que sólo tenga Kit de desarrollo de software de Windows (SDK), puede emplear el compilador de C# en la línea de comandos si utiliza el Símbolo del sistema de SDK, que está disponible en la opción de menú Microsoft .NET Framework SDK.

Para compilar desde el entorno de desarrollo, vea Cómo: Preparar y administrar versiones de compilación.

También puede utilizar MSBuild para compilar programas de C# mediante programación. Para obtener más información, vea MSBuild.

El archivo ejecutable csc.exe suele encontrarse en la carpeta Microsoft.NET\Framework\<versión> en el directorio del sistema. Su ubicación puede variar, según la configuración exacta de cada equipo individual. En el equipo habrá varias versiones de este archivo ejecutable si se ha instalado en él más de una versión de .NET Framework. Para obtener más información sobre estas instalaciones, vea Determinar qué versión de .NET Framework está instalada.

En este tema se tratan los siguientes temas:

Reglas para la sintaxis de la línea de comandos

Líneas de comandos de ejemplo

Diferencias entre los resultados del compilador de C# y el compilador de C++

Reglas para la sintaxis de línea de comandos del compilador de C#

El compilador de C# utiliza las siguientes reglas para interpretar los argumentos empleados en la línea de comandos del sistema operativo:

  • Los argumentos van delimitados por espacio en blanco, que puede ser un carácter de espacio o una tabulación.

  • El carácter de intercalación (^) no se reconoce como carácter de escape ni como delimitador. El analizador de la línea de comandos del sistema operativo procesa este carácter antes de pasarlo a la matriz argv del programa.

  • Una cadena entre comillas ("cadena") se interpreta como un solo argumento, sin importar el espacio en blanco que contenga. Se puede incrustar una cadena entre comillas dentro de un argumento.

  • Unas comillas precedidas por una barra diagonal inversa (\") se interpretan como un literal de cadena de comillas (").

  • Las barras diagonales inversas se interpretan literalmente, a menos que precedan inmediatamente a unas comillas.

  • Si a un número par de barras diagonales inversas le siguen unas comillas, se coloca una barra diagonal inversa en la matriz argv por cada par de barras diagonales y se interpretan las comillas como delimitador de cadenas.

  • Si a un número impar de barras diagonales inversas le siguen unas comillas, se coloca una barra diagonal inversa en la matriz argv por cada par de barras diagonales y se interpretan las comillas como un carácter de escape gracias a la barra diagonal restante. Esto hace que se agregue un literal de comillas dobles (") a argv.

Líneas de comandos de ejemplo para el compilador de C#

  • Compila File.cs y genera File.exe:

    csc File.cs 
    
  • Compila File.cs y genera File.dll:

    csc /target:library File.cs
    
  • Compila File.cs y crea My.exe:

    csc /out:My.exe File.cs
    
  • Compila todos los archivos de C# del directorio actual, con optimizaciones activadas, y define el símbolo DEBUG. Como resultado se genera el archivo File2.exe:

    csc /define:DEBUG /optimize /out:File2.exe *.cs
    
  • Compila todos los archivos de C# del directorio actual, generando una versión de depuración de File2.dll. No se muestra logotipo ni ningún tipo de advertencias:

    csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
    
  • Compila todos los archivos de C# del directorio actual, generando Something.xyz (una DLL):

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

Diferencias entre los resultados del compilador de C# y el compilador de C++

No se crean archivos objeto (.obj) como resultado de invocar el compilador de C#; se crean directamente archivos de salida. Como consecuencia de ello, el compilador de C# no requiere un vinculador.

Vea también

Referencia

Opciones del compilador de C#, por orden alfabético

Opciones del compilador de C#, por categoría

Otros recursos

Opciones del compilador de C#