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
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).
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...
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.