Mi aplicación de Windows Forms estaba trabajando antes, sin embargo, de repente dejó de funcionar. Estoy recibiendo siguiente excepción:

TypeInitializationException arrojado por el Programa de la clase

Con excepción de los siguientes datos:

System.TypeInitializationException was unhandled
Message: An unhandled exception of type 'System.TypeInitializationException' occurred in mscorlib.dll
Additional information: The type initializer for 'NotificationTester.Program' threw an exception.

Cuando hago clic en ACEPTAR, el VS windows, a continuación, muestra los siguientes:

TypeInitializationException arrojado por el Programa de la clase

La solución estaba trabajando bien antes. No entiendo lo que pasa de malo.

  • para TypeInitializationException usted necesita para comprobar la propiedad InnerException para obtener más detalles
  • Bueno, yo sé que debo buscar InerExceotion siempre que la excepción se produce al hacer clic en Detalles de la Excepción en el link de Excepción pop-up cuadro de diálogo como se muestra aquí. El punto es que mi código no entrar Program.Main() Así que no soy capaz de depurar el código. Yo pulsa la tecla F5 y obtener de esta excepción. Y por desgracia este diálogo de excepción no tiene la Vista de Detalles del enlace. Así que creo que la votación sobre esta cuestión será eliminado.
  • Ohh su static Program() constructor así reconocidos por @Marc Gravell a continuación, desea la descripción de la excepción me pudo haber dicho eso.
InformationsquelleAutor Mahesha999 | 2014-07-25

13 Comentarios

  1. 45

    Así: uno de los campo-inicializadores, o el constructor estático, para Program – está fallando. Averiguar por qué. Nota: el InnerException tiene la excepción que se ha planteado, pero básicamente: sólo depurar el campo de inicializadores y constructor estático. Así que busque en el interior de la Program clase para:

    static SomeType someField = /* some non-trivial expression or method call */ 

    o:

    static Program() {
        //stuff
    }
  2. 12

    Otra posible razón: la app.config tiene secciones duplicadas.

    • Yip, tenía el mismo problema. Fue la duplicación de tareas en la aplicación.config malo (copiar y pegar). Había applicationSettings etiqueta duplicada. <applicationSettings> <applicationSettings> <MyProject.Properties.Settings> <setting name="xxxx" serializeAs="String"> <value>....</value> </setting> </MyProject.Properties.Settings> </applicationSettings> ..... </applicationSettings>
    • esto funcionó para mí
    • Este fue el caso para mí también, gracias @Stagg !
    • Que era para mí también! He comprobado mi fuente de control de la historia y se observó un cambio. He quitado el cambio y todo está bien ahora. Tendremos que tirar @Stagg una de las partes.
    • He tenido este problema cuando he añadido un <appSettings> elemento para una config que ya estaba usando <applicationSettings>
  3. 9

    Una posible razón: init un estática diccionario con claves duplicadas.

    • me ahorra horas de depuración 🙂 gracias
    • Esta fue para mí, gracias!
  4. 6

    Tengo el mismo mensaje de error y para mi caso, el motivo es mi programa principal es la construcción como consola de 32 bits de la aplicación y he añadido una variable privada del registrador de que el acceso a una dll de 64 bits.

    public class Program
    {
        public static readonly Logger logger = new Logger(typeof(Program));

    Después de que he cambiado el programa principal se construye como el de 64 bits, el problema es fijo.

  5. 3

    En mi caso, el motivo fue, que <configSections> no fue el primero en config archivo.

    Sólo uno <configSections> elemento permitidos por
    archivo de configuración y si está presente, debe ser el primer hijo de la raíz <configuration> elemento.

    Mover el configSections elemento a la parte superior de su archivo de configuración.

    Espero que ayude a alguien.

    • Solucionado mi problema, gracias!
  6. 1

    Tengo el mismo error con la plataforma de la meta establecida como cualquier CPU y prefieren 32 bits marcada, desmarcando la última resuelto mi problema.

  7. 1

    Este es un raro problema que tenía que enfrentarse el pasado 2 horas. Lo resuelto por la eliminación de la estática de las listas que he creado.

    private static readonly List<Person> someList = GlobalConfiguration.Connection.PopulateList();

    con este:

    private readonly List<Person> someList = GlobalConfiguration.Connection.PopulateList();

    Esperanza ayuda y usted no tiene que gastar dos horas para encontrar el bug…

  8. 1

    Asegurarse de que usted no falta ninguna dependencia de Dll. En mi caso, un archivo DLL estaba referencia tenía una dependencia a otra DLL.

    Si esto es lo que sucedió, buscar en el Interior «Excepción» de la propiedad y, a continuación, verá un mejor mensaje de error. En mi caso, dijo que «No se puede encontrar xxx.dll»

  9. 1

    Por lo tanto, Si usted no recibió un innerException mensaje como yo, puede establecer un punto de interrupción en algunas de las variables estáticas como las cadenas que se haya declarado. A continuación, puede depurar hacia delante desde allí con F10.

    • Esto era él. Por lo general establecer todos mis globales en la parte superior, y siempre se inicializa en el constructor. Últimamente he estado cambiando, y se olvidó de revisar allí en primer lugar.
  10. 0

    Este problema, para mí fue causado por un pícaro de usuario.archivo de configuración que se creó en la AppData\Local[Fabricante][Nombre del Producto] directorio. No estoy seguro de cómo llegó allí, pero parece que se crea cada ahora y entonces.

  11. 0

    Después de probar todas las respuestas aparecen aquí, tengo una nueva:

    El inicializador de tipo ‘MyLibrary’ lanzó una excepción.

    Si usted ve algo como lo de abajo en la InnerException(s)……….

    "Could not load file or assembly 'log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a' or one of its dependencies. The system cannot find the file specified.":"log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a"

    En mi caso, mi directorio tenía la versión correcta del archivo dll. (log4net.dll en este caso).

    Y entonces … el problema fue encontrado. Asamblea redirecciones en la aplicación.config.

    🙁

    Ya que yo tenía la versión correcta, me quitaron todos mis redirecciones. Su situación puede ser diferente.

      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="b32731d11ce58905" />
            <codeBase version="1.2.9.0" href="log4netv1.2.9.0\log4net.dll" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" />
            <codeBase version="1.2.10.0" href="log4netv1.2.10.0\log4net.dll" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" />
            <codeBase version="1.2.13.0" href="log4netv1.2.13.0\log4net.dll" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
  12. 0

    Tengo el mismo problema: se ejecuta el programa en MS VS 2015 y se activa un mensaje de excepción:

    System.TypeInitializationException was unhandled
    Message: An unhandled exception of type 'System.TypeInitializationException' occurred in mscorlib.dll
    Additional information: Der Typeninitialisierer für "<Module>" hat eine Ausnahme verursacht.

    La pregunta de donde la fuente de esta excepción?
    Así que he empezado el archivo ejecutable y muestra el mensaje de excepción de diálogo. Respuesta en «modo de depuración» con MS VS modo se vuelven más información mostrada acerca de excepción.

    System.IO.FileNotFoundException was unhandled
        Message: An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
        Additional information: Die Datei oder Assembly "SIC, Version=19.2.6.3, Culture=neutral, PublicKeyToken=**************" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

    Voy a esta referencia y analizar las propiedades de
    Propiedad: «Copia Local» está en falso – porque antes era un instalados en GAC
    Solución: la propiedad «Copia Local» a una verdadera y construye una nueva asamblea y funciona 🙂

    Tal vez útil esta información! Así que tener un buen día.

  13. 0

    En mi caso fue una tontería. Accidentalmente había escrito algo como esto

    <configuration>
        <appSettings>
             <add key="someKey" value="SomeValue" />sss
             <add key="someKey1" value="SomeValue1" />
        </appSettings>
    </configuration> 

    sss – Causó el error para mí. Cualquier carácter aleatorio de entrada.

Dejar respuesta

Please enter your comment!
Please enter your name here