references - ¿Existe alguna manera en Visual Studio 2012 de utilizar F#REPL para depurar c#
references visual studio 2013 (2)
Si tengo un punto de interrupción en el programa ac #, me encantaría usar el F # REPL para inspeccionar mi código. ¿Es esto posible de alguna manera?
Debería poder depurar un proyecto C # con el F # REPL. Lo hago al depurar proyectos de biblioteca F #, pero las aplicaciones / bibliotecas C # también funcionarán (creo).
Compila tu proyecto de C #. En F # interactivo, haga referencia al conjunto C # utilizando la directiva #r
(consulte la publicación de ArthurFSharp). Inserta un punto de interrupción en algún lugar de tu código C #.
En Visual Studio, vaya a Tools
-> Attach to Process
. Busque Fsi.exe
en la lista de procesos y haga doble clic en él; si no lo ve allí, asegúrese de que el proceso Fsi haya comenzado (simplemente haciendo clic dentro de la ventana F # interactiva debería hacerlo).
En F # Interactive, ejecute un poco de código que alcanzará el punto de interrupción que configure; el depurador debe detener la ejecución en el punto de interrupción tal como lo desea. Siempre que el depurador no se detenga en algún punto de interrupción, también puede ejecutar otro código desde dentro de FSI, por ejemplo, para cambiar la configuración en la aplicación C # en ejecución.
IMPORTANTE: Recuerde que Windows bloquea un ensamblaje cada vez que se carga en un proceso. Esto significa que no podrá volver a compilar su aplicación C #, siempre que FSI esté abierto. Sin embargo, la solución es simple: una vez que haya realizado algunos cambios en la aplicación C # y desee volver a compilar y comenzar a probar nuevamente, simplemente haga clic derecho dentro de la ventana F # Interactive y haga clic en ''Restablecer sesión interactiva'' en el menú contextual. El proceso será cancelado y reiniciado, por lo que puede comenzar todo de nuevo. (Si olvida reiniciar el proceso de FSI e intenta recompilar su aplicación, la compilación demorará un poco más de lo normal, luego recibirá un mensaje de error que le indicará que el compilador no pudo escribir en el archivo de salida).
#I
incluir la ruta a su proyecto usando la directiva #I
, entonces puede cargar su ensamblaje y usarlo. A continuación, cargue el ensamblaje (directiva #r), abra el espacio de nombres y luego llame a los métodos (e inspeccione el resultado).
por ejemplo :
using System;
namespace ConsoleApplication1
{
public class Program
{
static void Main(string[] args)
{
PrintMessage();
}
public static void PrintMessage()
{
Console.WriteLine("Hello World!");
}
}
}
Y en F # Interactive:
> #I "full path to debug directory";;
--> Added ''full path to debug directory'' to library include path
> #r "ConsoleApplication1.exe";;
--> Referenced ''full path to debug directory/ConsoleApplication1.exe''
> open ConsoleApplication1;;
> Program.PrintMessage();;
Hello World!
val it : unit = ()
ps: necesito compilar tus proyectos primero.