.net wpf prism

.net - La aplicación WPF falla al iniciar con TypeInitializationException



prism xamarin (9)

¿Utiliza el archivo .config? Si es así, verifique si hay errores. Los errores de inicialización de este tipo a menudo son provocados por XML no válido: si no hay errores en XAML, la configuración XML es el primer lugar para buscar.

Tengo una aplicación WPF simple que estoy tratando de comenzar. Estoy siguiendo las pautas y prácticas de Microsoft "Guía de aplicaciones compuestas para WPF". He seguido sus instrucciones; sin embargo, mi aplicación WPF falla inmediatamente con una "TypeInitializationException".

La propiedad InnerException revela que "El inicializador de tipo para ''System.Windows.Navigation.BaseUriHelper'' lanzó una excepción."

Aquí está mi app.xaml:

<Application x:Class="MyNamespace.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Application.Resources> </Application.Resources> </Application>

Y aquí está mi app.xaml.cs (excepción lanzada en "public App ()"):

public partial class App : Application { public App() { Bootstrapper bootStrapper = new Bootstrapper(); bootStrapper.Run(); } }

Establecí la clase "Aplicación" como el objeto de inicio en el proyecto.

¿Qué está yendo por mal camino?


Gracias @ima, tu respuesta me indicó la dirección correcta. Estaba usando un archivo app.config y contenía esto:

<configuration> <startup> <supportedRuntime version="v2.0.50727" sku="Client"/> </startup> <configSections> <section name="modules" type="Microsoft.Practices.Composite.Modularity.ModulesConfigurationSection, Microsoft.Practices.Composite"/> </configSections> <modules> <module assemblyFile="Modules/MyNamespace.Modules.ModuleName.dll" moduleType="MyNamespace.Modules.ModuleName.ModuleClass" moduleName="Name"/> </modules> </configuration>

Parece que el problema fue el elemento <startup> porque cuando lo quité la aplicación funcionó bien. Estaba confundido porque Visual Studio 2008 agregó que cuando marqué la casilla para utilizar el "Perfil del cliente" disponible en 3.5 SP1.

Después de algunos errores sobre comprobar y desmarcar la casilla, terminé con un archivo de configuración como este:

<configuration> <configSections> <section name="modules" type="Microsoft.Practices.Composite.Modularity.ModulesConfigurationSection, Microsoft.Practices.Composite"/> </configSections> <modules> <module assemblyFile="Modules/MyNamespace.Modules.ModuleName.dll" moduleType="MyNamespace.Modules.ModuleName.ModuleClass" moduleName="Name"/> </modules> <startup> <supportedRuntime version="v2.0.50727" sku="Client"/> </startup> </configuration>

¡Lo cual funciona!

No estoy seguro de por qué el orden de los elementos en la aplicación.config es importante, pero parece que sí lo es.


Tienes dos secciones llamadas "módulos". Coloque ambas definiciones de módulo en una sección llamada "módulos".


Me encontré con una situación similar. Después de buscar durante una semana, encontré la resolución y realmente funcionó para mí. Solucionó 2-3 problemas que surgen debido al mismo problema.

Siga estos pasos: Compruebe la clave WPF (ausencia) en el registro: HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / NET Framework Setup / NDP / v3.0 / Setup / Windows Presentation Foundation Mi problema se debió a la ausencia de la clave mencionada en el registro.

Puede modificar y utilizar los siguientes detalles en su registro: (En realidad, puede guardar en el archivo e importar en el registro)

[HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / NET Framework Setup / NDP / v3.0 / Setup / Windows Presentation Foundation] @ = "WPF v3.0.6920.1453" "Versión" = "3.0.6920.1453" "WPFReferenceAssembliesPathx86" = "C: / Archivos de programa / Conjuntos de referencia / Microsoft / Framework / v3.0 / "" WPFCommonAssembliesPathx86 "=" C: / Windows / System32 / "" InstallRoot "=" C: / Windows / Microsoft.NET / Framework / v3.0 / WPF / "" InstallSuccess "= dword: 00000001" ProductVersion "=" 3.0.6920.1453 "" WPFNonReferenceAssembliesPathx86 "=" C: / Windows / Microsoft.NET / Framework / v3.0 / WPF / "

Estoy seguro de que funcionará.

todo lo mejor.

Saludos,

Umesh


Cualquier error en el archivo App.config puede causar el error, como un error tipográfico * al final de una línea, por ejemplo ...</startup> tiene un "*" adicional al final de la línea ...</startup>* .


Rastreando las InnerExceptions en el fondo, puede encontrar el siguiente error:

"Only one <configSections> element allowed per config file and if present must be the first child of the root <configuration> element"

Este cambio de orden ocurrió después de que Visual Studio EntityFramework Wizard agregó el elemento connectionStrings a la parte superior


Si solo ve la TypeInitializationException sin motivo o sin detalles sobre lo que está mal, deshabilite Just My Code en las opciones de Visual Studio.


En mi caso, es necesario agregar esto:

<configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

Sección en App.config (VS 2015 .NET 4.5.2)

Abra cualquier proyecto de WPF que haya construido antes, compruebe la compilación, si está bien, compruebe y compare App.config en ambos proyectos


Para mí, copié la configuración de la aplicación desde otra aplicación a mi app.config en una nueva sección llamada "userSettings". Sin embargo, es necesario que haya una "configSections" también agregada a la app.config que define "userSettings". Eliminé la sección userSettings, luego edité la configuración de la aplicación y la guardé. VS crea automáticamente las "configuraciones de usuario" y "secciones de configuración" correctas para usted si están ausentes.