el Guille, la Web del Visual Basic, C#, .NET y más...

Compilar y ejecutar

Publicado el 05/Ene/2019
Actualizado el 31/Ago/2020

Utilidad creada con WPF (.NET 4.7.2) para Compilar y ejecutar aplicaciones tipo consola desde la misma aplicación. Permite guardar el código de VB y C# así como la salida de la consola. Tiene algunos trucos para redirigir la salida de un ejecutable, sincronizar el contenido de dos TextBox y más...



NOTA:
Revisión del 31 de agosto 2020
Utilizo Roslyn 3.6.0

Te recomiendo que leas esto en el blog: Compilar y ejecutar (utilidad para .NET)

 

Compilar y ejecutar es una utilidad creada con WPF (.NET 4.7.2) para compilar y ejecutar aplicaciones tipo consola desde la misma aplicación. Permite guardar el código de VB y C# así como la salida de la consola. Permite colorear el código (tanto de VB como el de C#) y tiene algunos trucos para redirigir la salida de un ejecutable, sincronizar el contenido de dos TextBox, añadir y recuperar texto (o el contenido) de un RichTextBox, y más...

Para compilar utiliza Roslyn 2.0.1 (Microsoft.CodeDom.Providers.DotNetCompilerPlatform) de esta forma permite el uso de código para compilar con C# 7.3 y VB 15.5 ya que el compilador predeterminado de CodeDom es para las versiones 5 de C@ y 11 de Visual Basic. Por tanto, puedes usar Tuplas si quieres Winking smile

En la figura 1 puedes ver la aplicación en ejecución con un código de Visual Basic coloreado, mostrando la salida de la aplicación (de consola).

Figura 1. La aplicación en funcionamiento
Figura 1. La aplicación en funcionamiento

En la salida por la consola las vocales acentuadas (con tildes) no se mostraban bien y he usado un truco para convertir el texto de la consola de forma que se pueda leer sin problemas, concretamente usando la codificación de la página de códigos 437 usando GetEncoding(437).

Este es el código (para VB) que hace la conversión de lo leído por la salida estándar de un objeto Process y convirtiéndolo en texto (un truco para convertir un MemoryStream en texto o cadena).

' Convertir la salida usando el código de página 437
' que es la usada en MS-DOS (línea de comandos)
Dim texto = p.StandardOutput.ReadToEnd()
Dim ms As New MemoryStream(ASCIIEncoding.[Default].GetBytes(texto))
texto = Encoding.GetEncoding(437).GetString(ms.ToArray())

En otra ocasión te explicaré con más detalle todas las cosillas que la aplicación hace, por ahora te dejo el zip con el código fuente de Visual Basic en una solución para Visual Studio 2017 además del ejecutable y si prefieres instalarla usando ClickOnce, también lo puedes hacer, más abajo tienes los enlaces.

Comentarte que en el ZIP se incluye los packages de Roslyn.

Y esto ews todo por ahora... Smile

Espero que te sea de utilidad

Nos vemos.
Guillermo

P.S. Actualizado el 08/Ene/19
He quitado la referencia a gsEditor 2008 ya que he arreglado el BUG que tenía gsColorear2008.dll
Además de otras modificaciones en el código propio de la aplicación.


 
El ZIP con el código completo

El código para Visual Basic y C# de la solución con el proyecto para Visual Studio 2017 (o superior) usando .NET 4.7.2 y el paquete de Roslyn para compilar con CodeDom v2.0.1 además de un editor de textos que colorea el código (gsTextos2008 y la DLL para colorear)

 

Actualizado el 08/Ene/2019 tanto el ZIP con el código como ClickOnce.
En el ZIP no se incluye el proyecto de colorear, pero sí la DLL.

 

Este es el código fuente publicado originalmente el 8 de enero de 2019:

El zip: Compilar_y_ejecutar_20190108_2049.zip (34.0 MB)

MD5 Checksum: B2B918253BB7B2FC10CFA16480BC02D0

 

 

Este es el código fuente publicado el 31 de agosto de 2020:

El zip: Compilar_y_ejecutar_20200831_1701.zip (7.73 MB)

MD5 Checksum: 0DAB2A8754D0973C79DD950A17556515

 

Pulsa en el enlace si la quieres instalar usando ClickOnce.

 

Nota:
He actualizado la aplicación, en la instalación de ClickOnce se usa la nueva.
El zip con el código tiene el código al 8 de enero 2019.

 

Nota del 31/Ago/2020:
Tanto el código fuente como el de instalación con ClickOnce están actualizados para los cambios realizados con esta fecha y que incluyen Roslyn 3.6.0




La fecha/hora en el servidor es: 21/11/2024 7:39:49

La fecha actual GMT (UTC) es: 

©Guillermo 'guille' Som, 1996-2024