Compilar y ejecutar C# desde Sublime Text

Todo lo referente a la creación de un nuevo Build System en Sublime Text está explicado detalladamente en la entreda Compilar y ejecutar JAVA desde Sublime Text, así que si tienes alguna duda, pásate por esta entrada ya que la única diferencia entre la presente y la realizada para Java es el contenido del archivo .sublime-build que simplemente es copiar y pegar.


De este modo el contenido del archivo .sublime-build que debemos crear será el siguiente:
//Codigo para Windows
{
  "cmd": ["%WINDIR%\\Microsoft.NET\\Framework\\v4.0.30319\\csc.exe /utf8output /nologo", "$file_name", "&&", "$file_base_name.exe"],
  "shell": true
}
//Codigo para Linux (compilador mono-mcs)
{
  "cmd": ["mcs -out:${file_base_name} ${file_name} && chmod 764 ${file_base_name} && ./${file_base_name}"],
  "shell": true
}
NOTA
Ten en cuenta que según la version del .NET Framework instalada en Windows, la ruta puede variar, y la carpeta llamada v4.0.30319 se puede llamar v3.5 o v3.0, comprueba la dirección del compilador csc.exe antes de probar el Build System.

Guardamos en la carpeta que nos pone por defecto con un nombre descriptivo como por ejemplo "ejecutarC#.sublime-build" y listo. Cuando creemos nuestros programas en C# tan solo debes hacer click en Tools -> Build Systems -> ejecutarC#.


De este modo cuando tengamos nuestro programita en C# listo, al pulsar Ctrl + B o simplemente haces click en Tools -> Build, se compilará nuestro archivo .cs creando un .exe con su mismo nombre, y se ejecutará directamente mostrando el resultado en la consola de Sublime Text, como por ejemplo el siguiente código.
using System;
namespace Saludos {
    public class HolaMundo {
        static void Main(string[] args) {
            Console.WriteLine("Hola mundo!");
        }
    }
}
Dará como resultado:


Comentarios

  1. Saludos, cuando le doy build muestra Building y no lo ejecuta, al presional Ctrl+ñ muestra: Traceback (most recent call last):
    File ".\sublime_plugin.py", line 337, in run_
    File ".\exec.py", line 155, in run
    UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 105: ordinal not in range(128)

    Anteriormente había hecho lo de ejecutar en cmd.exe desde sublime text y compile y ejecute java y c++.

    Mi archivo lo nombre runC#.sublime-build

    Me puedes ayudar?

    ResponderEliminar
    Respuestas
    1. Es extraño, a mi me compila y ejecuta en el cmd.exe tanto c++, c# y java.

      Lo único que se me ocurre es que revises bien el "runC#.sublime-build" y compruebes la ruta del csc.exe en tu equipo.

      Sigue esta ruta, ya que el problema puede estar en la carpeta \v4.0.30319, que tengas una versión anterior del .NET Framework.
      %WINDIR%\Microsoft.NET\Framework\v4.0.30319\csc.exe

      %WINDIR% = C:\Windows\

      Eliminar
  2. Ya funco algo, no sé que estaba haciendo mal en fin, gracias, ya puedo compilar y ejecutar C, C++, C# y Java en el Sublime Text 2, gracias...

    ResponderEliminar
  3. Hola, tu pagina me parece muy interesante, estoy empezando a trabajar con Python y Ruby a traves de la Code Academy, estoy en cero en algunas cosas, ¿Cómo debo proceder para compilar y correr Ruby y Python en el Sublime Text?

    ResponderEliminar
    Respuestas
    1. Pues según tengo entendido tanto Python como Ruby son lenguajes interpretados, es decir, para ejecutarlos tan solo necesitas instalar el interprete que se suele descargar desde la página web del lenguaje. Además Sublime Text tiene compatibilidad con ambos, así que que solo debes instalar Python o Ruby y en cuanto generes tu archivo de programación, podrás ejecutarlo directamente presionando Ctrl + b.

      Saludos.

      Eliminar
  4. Hola, puedo ejecutar programas en sublime sin embargo si el programa necesita datos de teclado no me sirve ya que no me deja escribir nada y termina el programa (el programa ya esta probado que funciona en netbeans)...

    ResponderEliminar
    Respuestas
    1. Pues eso tiene fácil solución, lo único que tienes que hacer es, según el sistema operativo que uses, es seguir estas entradas, las cuales si todo sale bien, tus programas se ejecutarán en el cmd en windows o el terminal en linux, en ambos casos podrás leer datos del teclado.

      El problema es de la consola de sublime que no puede recoger datos.

      Si usas windows:
      http://ayudasprogramacionweb.blogspot.com.es/2012/12/ejecutar-en-cmdexe-desde-sublime-text.html

      Si usas linux:
      http://ayudasprogramacionweb.blogspot.com.es/2013/01/ejecutar-en-terminal-linux-sublime-text.html

      Saludos, espero serte de ayuda.

      Eliminar
  5. ¿En Sublime Text 3 es igual? No me compila, cuando voy a crear uno nuevo me aparece
    {
    "shell_cmd": "make"
    }

    ResponderEliminar
    Respuestas
    1. pudiste resolverlo? ami me sale igua

      Eliminar
    2. No pasa nada. Alguno pudo compilar C# con Sublime 3?
      El sistema no puede encontrar la ruta especificada.
      [Finished in 0.1s]

      Eliminar
  6. me manda el siguiente error


    fatal error CS2007: Opción no reconocida: '/nologo" "'
    [Finished in 0.2s with exit code 1]

    ResponderEliminar
  7. La opción /nologo me funciona correctamente en la version .NET 4, sin embargo no es necesaria ya que lo único que hace es evitar que aparezca un mensaje de Microsoft al compilar. Así que puedes quitarla en el sublime-build y dejar solamente la opción /utf8output y listo, te debe de ir bien.

    Este quedaría así:

    //Codigo para Windows
    {
    "cmd": ["%WINDIR%\\Microsoft.NET\\Framework\\v4.0.30319\\csc.exe /utf8output", "$file_name", "&&", "$file_base_name.exe"],
    "shell": true
    }

    Saludos!

    ResponderEliminar
  8. Hola mira me sale ahora este error...

    para Microsoft (R) .NET Framework 4.5
    (C) Microsoft Corporation. Reservados todos los derechos.

    fatal error CS0009: No se puede abrir el archivo de metadatos 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Configuration.Install.dll' -- 'El archivo está dañado.'
    [Finished in 0.3s with exit code 1]

    ResponderEliminar
    Respuestas
    1. Si tienes otra versión del .NET Framework, utiliza el compilador de esa misma versión que es el archivo csc.exe que habrá en la carpeta c:\Windows\Microsoft.NET\Framework\ y tu versión más actual, a ver si se resuelve tu problema.

      Saludos.

      Eliminar
  9. buenas me da el siguiente error!

    El sistema no puede encontrar la ruta especificada.
    [Finished in 0.0s with exit code 1]
    [cmd: ['C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe /utf8output /nologo', 'Nuevo documento de texto.cs', '&&', 'Nuevo documento de texto.exe']]
    [dir: C:\Users\Carlos\Google Drive\programacion\codigos tutorial]
    [path: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static]


    gracias por adelantado

    ResponderEliminar
    Respuestas
    1. Pues lo primero seria que tu archivo .cs, vamos el archivo con tu código en C# no tenga espacios en blanco, no se exactamente si puede ser motivo de fallo, pero es una buena práctica de programación y te puede ahorrar errores futuros, de modo que:

      Usa un nombre para tu archivo de código C# como Main.cs o Programa.cs por ejemplo.

      Lo siguiente es que compruebes donde esta tu archivo que se encargará de compilar el archivo de código C#, para ello abre la unidad C:\ que estará en "Mi pc" y ve recorriendo las carpetas que usaste en tu Sublime Build, es decir "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe", accede primero a la carpeta Windows, luego a la carpeta Microsoft.NET y así, deberias llegar al archivo csc.exe que es el que compilará tu archivo de C#.
      Si no lo encuentras en la ruta esa, ahí esta el fallo, debes buscarlo sabiendo que si tienes instalado Microsoft.NET estará dentro de esa carpeta, puede ser que tengas otra versión o algo por el estilo (usa la búsqueda de Windows si no lo encuentras).
      Cuando lo hagas, usa su ubicación en tu PC en el Sublime Build, NO OLVIDES PONER DOBLE \\ EN CADA CARPETA.

      Por último si sigue sin ir, quita las opciones \nologo y si quieres también la \utf8output.

      Con esto estoy seguro de que te debe funcionar bien.

      Un saludo y mucha suerte.

      Eliminar
  10. como hago para ver esa consola donde muestra los resultados?

    ResponderEliminar
    Respuestas
    1. Si estás en Windows, busca el programa cmd y si por el contrario estás en linux busca terminal.

      Saludos.

      Eliminar
  11. hola si nos puedes ayudar a actualizar sublime text 3 para poder utilizar cmd. de antemano muchas gracias y gracias por tu aporte ! :)

    ResponderEliminar
  12. alguien sabe como hacerlo con sublime text 3 lo hice como dicen pero no me compila nada de c#

    ResponderEliminar
  13. me sale este mensaje en la variables se pone el nombre del archivo cs

    El sistema no puede encontrar la ruta especificada.
    [Finished in 0.3s with exit code 1]
    [cmd: ['%WINDIR%\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe /utf8output /nologo', 'Main.cs', '&&', 'Main.exe']]
    [dir: C:\Users\Mercedez\Desktop]

    ResponderEliminar

Publicar un comentario

Si tenéis alguna duda o sugerencia, no dudéis en comentar. ;)

Entradas populares de este blog

Ordenar cualquier array con SORT en JAVA

Calcular factorial de un numero en JAVA

Modificadores de acceso (public, protected y private) JAVA