Bien, después de resolver cómo cargar en caliente una DLL en una aplicación en ejecución en Runtime (ver mi previous post), he notado que los puntos de interrupción insertados en la DLL recién cargada no son golpear.Depuración de una DLL dinámicamente cargada de otro AppDomain en Runtime
Situación
Tengo una aplicación de servidor que quiero evitar la terminación/volver a ejecutar cada vez que hago un cambio en un archivo DLL cargadas dinámicamente (por reflexión)
Meta
Aquí es lo que estoy tratando de hacer (soy consciente de que esto puede no ser posible per se):
- Run aplicación.exe
- carga en ella Process.dll en newAppDomain y proceso de ejecución
- depuración Process.dll
- Unload Process.dll
- Editar proceso código, recompilar Process.dll
- Recarga dinámicamente en Application.exe
- Debug Pro cess.dll
- etc ...
Problema
he notado que cuando aplicación.exe se pone en marcha en modo de depuración, código que se carga desde otro dominio de aplicación es inalcanzable por el depurador asociado a aplicación.exe (supongo que si simplemente inicie aplicación.exe directamente del archivo ejecutable, no hay manera de conseguir VS depurador para depurar cualquier cosa, inluding el DLL recién cargada)
solución Prossible
Una solución solución (feo) es separar la "inyección" de la DLL en la aplicación se ejecuta en un ejecutable independiente, que sería, entonces, controlable por el VS depurador
I mus admitir que estoy un poco confundido . ¿Alguna idea eficiente y limpia?
Esto es muy extraño. Tengo un servidor de aplicaciones que carga aplicaciones en un dominio de aplicaciones secundario y no tengo problemas para establecer puntos de interrupción. ¿Es el archivo Process.dll el resultado de un proyecto de clase de la solución que usa para iniciar Application.exe? –
Parece que en su pregunta de referencia no ha resuelto el problema de descargar el conjunto. En ese caso, su código no se romperá ya que los símbolos de depuración no coinciden. –
podría ser que el lugar desde el que su aplicación está cargando el dll no está donde se está construyendo el dll en modo de depuración – Asher