2011-09-20 13 views
10

¿Puede mostrarme una forma de solucionar problemas System.TypeLoadException?¿Cómo puedo solucionar los problemas: System.TypeLoadException?

Estoy teniendo esta excepción para un proyecto existente en mi solución a la que hago referencia desde un proyecto de prueba unitario en la misma solución.

Esta excepción se produce cuando ejecuto mis pruebas unitarias. No se dan a causa de esta excepción:

Detalles:

Método de ensayo MyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray arrojó excepción: System.TypeLoadException: No se pudo cargar el tipo 'MyTestNameSpace' del ensamblado 'MyTestAssemblyName. Test, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = Somenumber.

¿Qué debo verificar o dónde debo comenzar a investigar?

+1

¿Qué desencadena la excepción? – Gabe

+0

¿cuál es la excepción completa? –

+0

Por favor, vea mis adiciones. – pencilCake

Respuesta

2

En el mensaje de excepción, o tal vez en una propiedad InnerException, puede encontrar el tipo solicitado, con el nombre completo, versión, ensamblaje. Compruebe si el conjunto dado es accesible desde el directorio de la aplicación. Significado accesible en el directorio de la aplicación o en la ruta de exploración privada de la aplicación.

EDITAR: también compruebe que los ensamblados de satélite (a los que hace referencia el ensamblaje que el cargador de tipo falla al cargar) son alcanzables.

0

Eche un vistazo a la excepción interna. Esto sucede a menudo cuando el constructor estático lanza una excepción.

2

Puede intentar encender el 'Salto cuando se lanza una excepción' desde Depurar -> Herramientas -> Excepciones y hacer clic en todas las casillas de verificación en la columna Lanzada. Cuando vuelva a ejecutar su prueba, debería poder ver exactamente dónde se lanza esta excepción.

0

Bueno ... Fue totalmente malo.

Indiqué un nombre de ensamblado incorrecto que daba como resultado una DLL faltante en la carpeta bin.

Gracias a mi compañero, me indicó que revisara la carpeta bin. Y después de revisar la "ruta" de la referencia agregada, noté que está buscando un lugar completamente diferente.

11

Una situación en la que se produce esta excepción es si el conjunto de ejecución tiene el mismo nombre que el conjunto con el tipo dado. Por ejemplo, si está ejecutando MyApp.exe y el tipo está en MyApp.dll, el CLR supondrá que el tipo debe estar en MyApp.exe. Una solución sería cambiar el nombre de uno de esos conjuntos.

+4

+1 ¡Gracias, esto me salvó la cola después de un montón de rasguños en la cabeza! –

Cuestiones relacionadas