Me preguntaba si había una forma de bloquear por completo mi código mientras lo depuraba en Visual Studio 2008. Los documentos de código se bloquean automáticamente cuando se ejecutan como aplicaciones de 64 bits, lo que prefiero mucho; sin embargo, hago la mayor parte de mi codificación haciendo complementos para Excel, que es de 32 bits. El resultado es que, aunque segmente 'AnyCPU', el host VS sabe que se está ejecutando en un proceso de 32 bits y, por lo tanto, el código fuente es no bloqueado mientras el código se ejecuta alojado en Visual Studio.¿Hay alguna manera de * completamente * desactivar Editar y Continuar?
Puedo desactivar Editar y Continuar yendo a Herramientas> Opciones> Depuración> Editar y Continuar, y luego desmarcar la casilla de verificación "Habilitar Editar y Continuar". Sin embargo, esto no bloquea completamente el código. Esto evita que se ejecute ninguna edición en el código en la ejecución actual, pero no impide que los clics del mouse o las teclas cambien realmente el código.
De nuevo, cuando se trabaja con aplicaciones de 64 bits, esto no ocurre: el código está completamente bloqueado. Yo prefiero en gran medida el código que va a bloquear por completo durante al menos un par de razones:
que accidentalmente puede presionar una tecla o similar durante la depuración, lo que definitivamente no quiero hacer. Es raro, pero es un problema.
Muchas de mis pruebas automatizadas conducen la interfaz de usuario a través de SendKeys. Sin embargo, al pasar por una prueba de este tipo utilizando el depurador, a veces puedo olvidar que algunos de los aspectos involucran a SendKeys, lo que significa que las pulsaciones de teclas terminan siendo enviadas al Visual Studio IDE en lugar de a Excel.
En la edición # 2, arriba, la prueba de la unidad falla, lo cual está bien - mi mal - pero tener todas las pulsaciones de teclado enviados al módulo de código y la destrucción de mi código es completamente inaceptable.
¿Alguien tiene alguna idea aquí? ¿Se puede bloquear completamente el código cuando se ejecuta hospedado en Visual Studio mientras se compila en una CPU de 32 bits?
Algunos mensajes relacionados en esta cuestión, pero ninguna de las cuales dirigirse directamente a éste:
- How to: Enable and Disable Edit and Continue
- “Changes to 64-bit applications are not allowed” when debugging in Visual Studio 2008
- How do I enable file editing in Visual Studio’s debug mode?
- How does “Edit and continue” work in Visual Studio?
- Can we edit our code while running the application
- Editing C# while debugging
Gracias de antemano por cualquier ayuda o ideas ...
Mike
Tenga en cuenta que una prueba unitaria que se comunica con un software externo se denomina prueba de integración. –
@Lasse: Ok, es suficiente. Editaré lo anterior para decir "pruebas automatizadas", ya que estoy ejecutando un conjunto de pruebas que van desde pruebas de unidades aisladas hasta pruebas de integración. Gracias. No importa mucho aquí, es SendKeys el problema, independientemente del tipo de prueba que desee considerar. –