2008-09-12 11 views
21

साथ स्टार्टअप पर विफल रहता है मैं एक साधारण WPF आवेदन जो मैं शुरू करने के लिए कोशिश कर रहा हूँ है। मैं माइक्रोसॉफ्ट पैटर्न और प्रैक्टिस का पालन कर रहा हूं "डब्ल्यूपीएफ के लिए समग्र एप्लीकेशन गाइडेंस"। मैंने उनके निर्देशों का पालन किया है हालांकि मेरा WPF एप्लिकेशन तुरंत "TypeInitializationException" के साथ विफल रहता है।WPF आवेदन TypeInitializationException

InnerException संपत्ति पता चलता है कि " 'System.Windows.Navigation.BaseUriHelper' के लिए प्रकार प्रारंभकर्ता एक अपवाद फेंक दिया।"

यहाँ मेरी App.xaml है:

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

मैं निर्धारित किया है:

<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> 

और यहाँ मेरी app.xaml.cs (अपवाद "सार्वजनिक अनुप्रयोग()" में फेंक दिया) है परियोजना में स्टार्टअप ऑब्जेक्ट के रूप में "ऐप" कक्षा।

क्या भटक रहा है?

उत्तर

36

धन्यवाद @ima, आपका जवाब सही दिशा में मुझे इशारा किया। मैं एक app.config फ़ाइल उपयोग कर रहा था और यह इस निहित:

<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> 

ऐसा लगता है समस्या < स्टार्टअप > तत्व था क्योंकि जब मैं इसे हटा दिया आवेदन ठीक भाग गया। मैं उलझन में था क्योंकि विजुअल स्टूडियो 2008 ने कहा कि जब मैंने 3.5 एसपी 1 में उपलब्ध "क्लाइंट प्रोफाइल" का उपयोग करने के लिए बॉक्स चेक किया था।

जाँच और बॉक्स मैं इस तरह एक विन्यास फाइल के साथ समाप्त हो गया संयुक्त राष्ट्र की जाँच के बारे में mucking कुछ करने के बाद:

<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> 

कौन सा काम करता है!

मुझे यकीन है कि क्यों app.config में तत्वों का क्रम महत्वपूर्ण है नहीं कर रहा हूँ - लेकिन यह यह है लगता है।

+9

तत्व को पहले होने की आवश्यकता है। बाकी का आदेश अप्रासंगिक है। – Alex

+0

अगर मुझे सही याद है तो यह विजुअल स्टूडियो स्वयं था जिसने तत्व डालने से तत्व ऑर्डर बदल दिया, इसलिए मेरा भ्रम। –

+2

एक ही त्रुटि हो रही थी और जैसा कि एलेक्स ने कहा था कि मेरी कॉन्फ़िगरेशन के शीर्ष पर मेरी 'configSctions' को ले जाया गया है और अभी ठीक काम करता है। क्लाइंट प्रोफाइल से बदलकर सिर्फ .Net 4. – windowskm

8

आप .config फ़ाइल उपयोग करते हैं? यदि ऐसा है, तो त्रुटियों के लिए इसे जांचें। इस प्रकार की प्रारंभिक त्रुटियों को अक्सर अवैध XML द्वारा ट्रिगर किया जाता है: यदि XAML में कोई त्रुटि नहीं है, तो XML कॉन्फ़िगरेशन देखने के लिए पहली जगह है।

0

आपके पास "मॉड्यूल" नामक दो अनुभाग हैं। मॉड्यूल परिभाषाओं को "मॉड्यूल" नामक एक खंड में रखें।

0

मैं एक ऐसी ही स्थिति का सामना किया। एक सप्ताह के लिए खोज करने के बाद, मुझे संकल्प मिला और यह वास्तव में मेरे लिए काम किया। यह एक ही समस्या के कारण उत्पन्न होने वाली 2-3 समस्याएं हल करता है।

इन चरणों का पालन करें: WPF कुंजी (अभाव) रजिस्ट्री में जाँच करें: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ नेट फ्रेमवर्क सेटअप \ NDP \ v3.0 \ Setup \ विंडोज प्रस्तुति फाउंडेशन मेरे समस्या के अभाव की वजह से था रजिस्ट्री में उपर्युक्त कुंजी।

आप संशोधित कर सकते हैं और निम्नलिखित अपने रजिस्ट्री में जानकारी के उपयोग: (असल में, आप फाइल और रजिस्ट्री में आयात में बचा सकता है)

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ नेट फ्रेमवर्क सेटअप \ NDP \ v3.0 \ Setup \ विंडोज प्रेजेंटेशन फाउंडेशन] @ = "डब्ल्यूपीएफ v3.0.6920.1453" "संस्करण" = "3.0.6920.1453" "WPFReferenceAssembliesPathx86" = "सी: \ प्रोग्राम फ़ाइलें \ संदर्भ असेंबली \ Microsoft \ Framework \ v3।0 \ " " WPFCommonAssembliesPathx86 "=" सी: \ विंडोज \ System32 \ " " इंस्टॉलरूट "=" सी: \ विंडोज \ माइक्रोसॉफ्ट.नेट \ फ्रेमवर्क \ v3.0 \ WPF \ " " InstallSuccess "= डवर्ड: 00000001 "ProductVersion" = "3.0.6920.1453" "WPFNonReferenceAssembliesPathx86" = "C: \ Windows \ Microsoft.NET \ फ्रेमवर्क \ v3.0 \ WPF \"

मुझे यकीन है कि यह काम करेंगे

सब। सबसे अच्छा।

सादर,

उमेश

11

कुछ भी App.config फ़ाइल में गलत तरह के उदाहरण के लिए एक पंक्ति के अंत में * की गलत वर्तनी, ...</startup> के रूप में त्रुटि, कारण हो सकता है एक अतिरिक्त "*" लाइन ...</startup>* के अंत में है।

+0

परफेक्ट के कारण। आपने मेरा दिन बचाया मुझे नहीं पता था कि इस अपवाद के साथ क्या चल रहा है। मैंने गलती से अपने app.config में "4" टाइप किया और यह अपवाद के पीछे कारण था। धन्यवाद। –

2

InnerExceptions ट्रैकिंग गहरी सोच में, आपको निम्न त्रुटि मिल सकती है:

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

इस आदेश को बदलने के बाद दृश्य स्टूडियो EntityFramework जादूगर शीर्ष

2

को ConnectionStrings तत्व जोड़े हुआ यदि आप केवल देखना TypeInitializationException किसी भी कारण या गलत के बारे में कोई विवरण नहीं है, फिर विजुअल स्टूडियो विकल्पों में बस मेरा कोड अक्षम करें।

0

मेरे मामले में यह जोड़ा जाना चाहिए है: App.config (वी.एस. 2015 नेट 4.5.2)

ओपन किसी भी WPF परियोजना क्या पहले बसाया पर

<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" /> 

धारा , बिल्ड की जांच करें, ठीक है - दोनों परियोजनाओं पर App.config की जांच करें और तुलना करें

1

मेरे लिए, मैंने ऐप सेटिंग्स को मेरे app.config में "userSettings" नामक एक नए खंड में कॉपी किया था। । हालांकि, "configSections" को ऐप.कॉन्फिग में भी जोड़ा जाना चाहिए जो "userSettings" को परिभाषित करता है। मैंने उपयोगकर्ता सेटिंग्स अनुभाग को हटा दिया, फिर ऐप सेटिंग्स संपादित की और इसे सहेजा। यदि वे अनुपस्थित हैं तो वीएस स्वचालित रूप से आपके लिए सही "उपयोगकर्ता सेटिंग्स" और "कॉन्फ़िगरेशन" बनाता है।