Cómo se puede asociar al Proceso…» para una aplicación de consola de eso se ejecuta desde una ventana de CMD y no se lanzó por F5? La razón que pido es porque la aplicación tiene argumentos de línea de comandos y quiero tener una experiencia genuina.

Incluso he adjuntar a CMD.exe, pero no hubo suerte, o la fijación de un punto de ruptura mediante Console.ReadKey() con también sin suerte. Yo estoy en una pérdida aquí.

Es esto posible?

  • En caso de que usted no está consciente, puede establecer argumentos de línea de comandos de Visual Studio para ser utilizados en su aplicación al presionar F5. Haga clic derecho en el proyecto -> Propiedades -> Debug -> Opciones de Inicio -> Argumentos de Línea de Comandos.
  • G, sí puedo hacerlo, pero es muy torpe y si quiero cambiar los argumentos, tengo que cavar a través de cuadros de diálogo
  • Adjuntar a cmd.exe es inútil, ya que la consola de la aplicación se ejecuta en su propio proceso, no cmd.exe
InformationsquelleAutor Chris | 2010-05-03

6 Comentarios

  1. 30

    Usted tiene algunas opciones:

    • Uso de «Debug -> argumentos de línea de Comandos» opción en Visual Studio;
    • Uso de «Debug -> asociar al proceso» y encontrar su proceso; no es cmd.exe pero un proceso con nombre de archivo ejecutable como «MyProject.exe». Usted puede utilizar Process Explorer u otro administrador de tareas con «vista de árbol» apoyo a encontrar fácilmente el Proceso de IDENTIFICACIÓN – sólo tiene que buscar los procesos iniciados por su cmd.exe.
    • Poner Depurador.Break() en el código – cuando este método se ejecuta, el sistema lanzará un cuadro de diálogo le pide que elija en qué instancia de Visual Studio para utilizar para la depuración (se puede elegir el uno con el proyecto ya está abierta).
    • Excelente – acaba de agregar una Consola.ReadKey() como la primera línea y se trabajó como un encanto.
    • Ejecutando .NET 4.6.1 de la aplicación con el Depurador.Break() no adjuntar VS2017. En Lugar Depurador.Lanzamiento() trabaja aquí.
  2. 5

    Para depurar desde la línea de comandos en lugar de utilizar el VS GUI laberinto:

    • Lanzar los Comandos de Visual Studio

    • tipo vsjitdebugger/? que le da el ejemplo de un comando como :

    c:> vsjitdebugger [AppName] [Args] : ejecute el archivo ejecutable especificado y adjuntar al depurador

    • escribir tlist o tasklist le dará PIDs para conectar a los procesos existentes. ejemplo:

    c:> tasklist | find /i «web»

  3. 2

    Es posible, claro. Pruebe uno de estos dos:

    1. Iniciar el proceso, a continuación, vaya a la Depuración->Fije y encuentre el proceso. Puede que tenga que actualizar para ver.
    2. Agregar un «Depurador.Break()» instrucción en el código, si es posible; que se rompen automáticamente (pero asegúrese de quitar o de sonido envolvente con las directivas de preprocesador lo que no consigue en el código de producción).
  4. 1

    Como otros han dicho, puede especificar el stratup de argumentos de línea de comandos desde dentro el proyecto y comenzar la depuración dentro de Visual Studio.

    Si usted todavía desea adjuntar a la aplicación en ejecución, es necesario adjuntar el depurador MyApp.exe (cualquiera que sea su aplicación que se llama – el archivo exe que se compila para el directorio bin\debug) y no cmd.exe. Adjuntar a cmd.exe que asociar el comando de proceso, no el proceso de su aplicación.

  5. 0

    En los proyectos de configuración de la sección «Debug» hay un cuadro de texto para «argumentos de línea de Comandos:». Cuando el VS depurador se inicia el programa de C#, que va a pasar los argumentos para el proceso como si el programa se había comenzado a formar la línea de comandos con esos argumentos.

    La alternativa es utilizar una línea de comandos del depurador. Hay un par de opciones aquí, pero con toda honestidad, que probablemente no lo que usted desea utilizar en lugar de VS, a menos que usted está consiguiendo en algunos peliagudo escenarios de depuración. Si usted está interesado en la comprobación de las mismas, hay un buen resumen en este MODO de respuesta:

    Usted puede también intentar la técnica de la puesta de una llamada a System.Diagnostics.Debugger.Break() temprano en su inicialización – si el programa se ejecuta bajo un depurador, se va a romper, que no se está ejecutando bajo un depurador debe preguntará si desea adjuntar una. Usted puede hacer la llamada condicional dependiendo de un archivo de configuración o configuración de variable de entorno tan sólo obtendrá el descanso si usted está realmente interesado en ella (un poco intrusivo, pero no demasiado malo).

  6. 0

    Basta con agregar una entrada del registro para el archivo exe del nombre en «HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\archivo de imagen de las opciones de ejecución», añadiendo un «depurador» clave valorado con «vsjitdebugger.exe» por debajo de ella, se puede ver un cuadro de diálogo emergente que le pide que elija un VS a la versión de depuración cuando el exe se inicia.

    ver MSDN «Cómo Iniciar el Depurador Automáticamente» para obtener más información.

Dejar respuesta

Please enter your comment!
Please enter your name here