Se puede invocar el compilador desde la línea de comandos escribiendo el nombre de su archivo ejecutable (csc.exe) en la línea de comandos. Quizás tenga que ajustar la ruta de acceso si desea ejecutar csc.exe desde cualquier subdirectorio del equipo.
En este tema se proporcionan detalles sobre los siguientes apartados:
Ejecutar VCVARS32.BAT
Diferencias entre los resultados del compilador de C# y el compilador de C++
Reglas para la sintaxis de la línea de comandos
Líneas de comandos de ejemplo
Ejecutar VCVARS32.BAT
El archivo vcvars32.bat establece las variables de entorno apropiadas para habilitar la compilación desde la línea de comandos.
Para ejecutar VCVARS32.BAT
En el símbolo del sistema, vaya al subdirectorio \bin de la instalación de Visual Studio.
Escriba VCVARS32 para ejecutar VCVARS32.bat.
Precaución VCVARS32.bat puede variar de un equipo a otro. No debe reemplazar un archivo VCVARS32.BAT dañado o inexistente con el archivo VCVARS32.BAT de otro equipo. Vuelva a ejecutar el programa de instalación para reemplazar el archivo que falta.
Para obtener más información acerca de vcvars32.bat, vea el siguiente artículo de Knowledge Base:
Q248802 : Vcvars32.bat Generates Out of Environment Message
Si se instala la versión actual de Visual Studio en un equipo que también tiene una versión anterior de Visual Studio, no se deben ejecutar los archivos vcvars32.bat de versiones diferentes en la misma ventana de comandos.
Diferencias entre los resultados del compilador de C# y el compilador de C++
No se crean archivos de objeto (.obj) como resultado de ejecutar el compilador de C#; los archivos de resultados se crean directamente. Como consecuencia de ello, el compilador de C# no requiere un vinculador.
Reglas para la sintaxis de la línea de comandos
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 por completo 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 carácter literal 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 inversas y se interpretan las comillas como un 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, lo que hace que se coloque un carácter literal de comillas (") en argv.
Líneas de comandos de ejemplo
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