2009-09-29 9 views
7

Cuando se agregan dependencias en ensamblajes de terceros a una aplicación .NET típica, es muy fácil olvidarse de agregarlas al instalador. Este problema tiende a revelarse solo después de que se instala la aplicación, y en forma de bloqueo al inicio con poca información útil disponible.¿Cómo averiguo qué DLL falta hace que mi aplicación .NET se cuelgue al inicio?

¿Cuáles son las mejores herramientas y técnicas para descubrir qué ensambles deben agregarse al instalador?

Respuesta

5

totalmente automatizado construye ayudar a reducir el componente humano y por lo tanto el error. Si se genera automáticamente cada vez, sabrá que cada construcción será la misma, así que una vez que la tenga funcionando una vez, siempre va a funcionar.

Utilizamos herramientas como MSBuild y CruiseControl.net

Si usted está buscando las herramientas que ayudan a su trabajo a cabo la causa del accidente, llevar un registro en el Assembly binding (Fusion) log viewer (or fuslogvw). Si lo inicia antes de iniciar su aplicación, establecer la ubicación del archivo de registro y activar el inicio de sesión completo, informará sobre cualquier intento de vincular ensamblajes y enumerará cualquier error.

+0

Mi aplicación está construida con MSBuild por CCNET, que también ejecuta pruebas de aceptación automatizadas, pero actualmente no prueba el instalador. Supongo que ese sería un enfoque para detectar el problema lo antes posible, pero específicamente estoy pidiendo ayuda para encontrar cuál es el problema cuando ya ha ocurrido. – GraemeF

+0

¿Entonces no busca algo que impida que suceda, sino después de algo que le diga qué archivo .dll falta cuando la aplicación falla en un equipo cliente? –

+0

Sí, bueno, en una máquina de prueba primero, ¡con suerte! ;) – GraemeF

3

Dependency Walker es una gran pequeña utilidad que sigue una cadena de dependencias de una aplicación o DLL y resalta las que faltan. En realidad, no es tan intuitivo como para que el usuario final tenga que usarlo, pero con suerte, si comienzas a usarlo, podrás ver los elementos que te faltan.

http://www.dependencywalker.com/

+5

Dependencia Walker no es muy útil con los ensamblados .Net –

+1

Sí, ideal para no administrado pero no para .NET. – GraemeF

0

Depende de las capacidades de su instalador. Los proyectos de configuración integrada VS pueden recoger automáticamente cualquier ensamblaje dependiente. Es posible que desee comprobar si su instalador tiene algunas características similares.

Por otro lado, puede ordenar a sus proyectos de VS copiar todas las dependencias al directorio de salida y simplemente incluir todos los archivos desde allí en su instalador.

+0

Estoy usando WiX y listando explícitamente los archivos que se incluirán. – GraemeF

+0

No conozco ninguna herramienta de WiX que pueda ayudarlo, por lo que es posible que desee seguir con mi sugerencia de simplemente recoger todos los archivos del directorio de salida. Eso es lo más fácil que puedo pensar. Si el proyecto se ejecuta desde el directorio de salida, también debe hacerlo después de instalarlo en la máquina de destino. –

Cuestiones relacionadas