Compilar C# .NET en modo texto
Fecha: 30/Abr/2004 (28/Abril/2004) |
. |
Compilar C# .NET en modo texto
Compilador csc.exe y opciones principales
Aunque el IDE de Visual Studio hace que compilar y ejecutar una aplicación que estamos desarrollando sea facilísimo, ésto provoca que las opciones de compilación pasen desapercibidas, por lo que el conocimiento del lenguaje será menor. La compilación de línea de comandos de C# .NET es una alternativa a la de compilar los programas desde el entorno de desarrollo integrado de C# .NET (IDE).
El compilador de línea de comandos se llama csc.exe. Para que sea más cómodo invocarlo, puedes usar (solamente en windows 2000, XP y 2003) este archivo de texto que, una vez con la extensión cambiada a .reg (archivo de registro) y ejecutado con doble clic, crea una nueva entrada en el menú contextual de las carpetas con el texto "CMD en esta carpeta", que abre una ventana del intérprete de comandos en la carpeta especificada. Esa carpeta debería ser la del archivo de código en C# .NET que queremos compilar y que tendrá la extensión .cs.
Para un programa sencillo como, por ejemplo, Primer_programa.cs, si se utiliza la siguiente línea de comandos:
csc Primer_programa.cs
se creará un programa ejecutable llamado Primer_programa.exe en el directorio donde se ha ejecutado el comando.
Algunas de las opciones más importantes del compilador son:
/reference:
- /?muestra las opciones de compilación (como /help).
- /reference pone a disposición del proyecto la información de tipo de los ensamblados especificados. Al compilar desde la línea de comandos, se debe hacer referencia explícitamente a la biblioteca de tiempo de ejecución de Microsoft Visual Basic, mediante la opción de compilador
/reference:Microsoft.VisualBasic.dll
/target especifica el formato del archivo resultante, puede ser:
- /target:exe produce una aplicación de consola ejecutable (opción por defecto si no se usa /target).
- /target:library produce una biblioteca de vínculos dinámicos (DLL).
- /target:module produce un módulo que puede ser añadido a un ensamblado.
- /target:winexe produce un programa ejecutable de Windows.
/main especifica la clase que contiene el procedimiento SubMain. Es útil cuando tenemos definidos varios métodos Main en el mismo ensamblado. /out especifica un archivo de resultados si no se desea que sea el que el compilador asigna por defecto. Pero es recomendable consultarlas todas con /? y con la ayuda de C# .NET o de MSDN.
Editor de texto con análisis sintáctico
Para realizar lo comentado en el párrafo anterior nos bastaría con el Bloc de notas de Windows, pero es un proceso engorroso que se ve facilitado si se usa un editor de texto que permita analizar y realzar la sintaxis con colores, de esta manera el trabajo es más cómodo y productivo en términos de tiempo y esfuerzo.
De los muchos existentes, me he decantado por EditPlus de ES-Computing, un editor de texto sencillo y potente con capacidad de realzar la sintaxis de numerosos lenguajes de programación.
EditPlus soporta análisis y realzado de sintaxis de una forma potente y configurable. Por defecto, el programa tiene incorporada esa función para determinados tipos de archivos: HTML, CSS, PHP, C/C++, Java, JavaScript, Perl y VBScript. Pero es posible crear un archivo de sintaxis personalizado para soportar cualquier otro lenguaje de programación.
Para crear un archivo de sintaxis personalizado;Siguiendo esas instrucciones, he modificado un archivo de sintaxis para C# .NET (miliuco_csharp.zip) (tamaño: 136 KB) que contiene directivas, palabras reservadas, clases, funciones, instrucciones, espacios de nombre, etc. El autor del archivo en su forma original es Ken Arway. Si el archivo de sintaxis se configura adecuadamente en EditPlus, al abrir un archivo con extensión cs se mostrará el código realzado por colores y su estudio requerirá mucho menos tiempo que si todo el texto estuviese en el mismo color.
- Crear un archivo de sintaxis:
- es un archivo de texto plano con la extensión ".stx".
- ha de ser escrito según unas normas predefinidas.
- el archivo consta de secciones, en la primera sección se anota información de cabecera como título del archivo (obligatorio, sin él no funciona), caracteres delimitadores del texto, carácter de entrecomillado, carácter de comentario, carácter de escape, especificación case-sensitivity (y / n), etc. En la segunda sección se listan los distintos grupos de palabras clave, agrupadas bajo el título "#KEYWORD". Puede haber hasta 5 de estos grupos.
- todas las secciones han de empezar por #.
- las líneas que empiecen por ; se tratan como comentarios.
- para poder incluir palabras que empiecen por el signo # (como es el caso de las directivas de C# .NET) hay que anteponer el carácter de escape ^. En casos así, el signo # no debe aparecer entre los delimitadores.
- guardar el archivo (por ejemplo, en el directorio de EditPlus).
- Desde el menú Tools / Preferences / Settings & Syntax se puede añadir el archivo de sintaxis.
- Se añade un nuevo tipo de archivo con la opción Add.
- Detallar la/las extensiones del tipo de archivo con la opción File extensions.
- Especificar la ruta al archivo de sintaxis con la opción Syntax file.
- Se pueden cambiar los colores por defecto con la opción Syntax highlighting.
- A partir de ahora, al abrir un archivo que tenga las extensiones detalladas se observará el realzado de sintaxis con colores diferenciadores.
En la propia web de EditPlus hay una sección dedicada a los archivos que han enviado los usuarios, desde ella es factible descargar archivos de sintaxis para numerosos lenguajes de programación, incluidos C#, PL-SQL, ASP, Pascal, Python, BCX [Basic to C Translator], Flash MX 2004 ActionScript 2.0, mIRC, Linux IPTABLES, Clipper 5.2, Apache2, Latex, etc, etc...
Para crear el archivo de texto Cmd_exe.txt
Crea un fichero de texto (cmd_exe.txt) y pega el siguiente código:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd]
@="CMD en esta carpeta"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd\command]
@="cmd /k \"cd %L\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\cmd]
@="CMD en esta carpeta"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\cmd\command]
@="cmd /k \"cd %L\""