वर्तमान संदर्भ में 'InitializeComponent' नाम मौजूद नहीं है


383

यदि मैं Visual Studio 2010 SP1 में एक नया प्रोजेक्ट बनाता हूं और "WPF एप्लिकेशन" का चयन करता हूं और उत्पन्न एप्लिकेशन बनाने की कोशिश करता हूं, तो मुझे त्रुटि मिलती है

वर्तमान संदर्भ में 'InitializeComponent' नाम मौजूद नहीं है।

मुझे आज सुबह इसी तरह की त्रुटि हुई जब मैंने अपनी वर्तमान परियोजना बनाने की कोशिश की। कल, मुझे इसे संकलित करने और चलाने में कोई समस्या नहीं थी।

जब भी मैंने प्रोजेक्ट संकलित किया, मैंने एक नई परियोजना बनाई और त्रुटि पाई। मैंने सिर्फ एक सहयोगी को परियोजना भेजी है, और उसने बिना किसी त्रुटि के बस संकलित किया है।

गलत क्या है?


3
यह उपयोगकर्ता "त्रुटि" को हल करना आसान लगता है, बस एक साधारण एक्स: क्लास उचित परिभाषा। जब तक सब ठीक नहीं हो जाता, तब तक डेवलपर को अधिक ध्यान देना चाहिए, लेकिन क्या होगा यदि यह त्रुटि नहीं है लेकिन समान त्रुटि संदेश के साथ एक भूत त्रुटि है? मैंने 2012 से अलग-अलग वूडू वर्कआर्ड्स का एक बहुत कुछ पढ़ा। यह वीएस से बहुत स्पष्ट त्रुटि संदेश और एक ही संदेश के साथ भूत त्रुटियों के लिए एक बगफिक्स से मदद करेगा। डेवलपर्स 2012 से फाइल, प्रोजेक्ट्स से बिल्ड कॉन्फिगर को बदल रहे हैं, प्रोजेक्ट को कॉपी-पेस्ट कर रहे हैं, ऐप फोल्डर से फाइल्स डिलीट कर रहे हैं, VS को रीस्टार्ट कर रहे हैं। ब्रावो MS ... 4 साल का बग और अभी भी पुराना हो रहा है!
12:09 बजे जूक्रेरे

2
इस प्रश्न के किसी भी भविष्य के पाठकों के लिए: इस समस्या के बहुत सारे संभावित स्रोत हैं। मेरे मामले में पहले कुछ उत्तरों से मदद नहीं मिली, लेकिन नीचे दिए गए उत्तरों में से एक सही था।
MOnsDaR

@MOnsDaR डिज़ाइनर फ़ाइल का नामस्थान मेरे लिए समस्या थी।
S पर Ctrl S

हालांकि यह कई चीजों के कारण हो सकता है (Namespace नाम बदला गया \ Page प्रकार - MSBuild), मैंने अंततः उस परियोजना के लिए समाधान ढूंढ लिया है जो मुझे विरासत में मिली थी। .Csproj फ़ाइलों में, मुझे 4 से 15 (वीएस 2017) से "टूलवर्सन" बदलना पड़ा।
MrMikeJJ

जवाबों:


736

मैंने एक-दो बार इसका सामना किया है और भूल जाता हूं कि इसके कारण क्या हैं। मैं इस में भाग गया जब मैंने फ़ाइल के पीछे अपने कोड पर नाम स्थान का नाम दिया लेकिन मेरे XAML में नहीं।

इसलिए जांचें कि क्या आपने ऐसा ही किया है।

नाम स्थान और वर्ग नाम से मेल करने के बाद से वे एक आंशिक वर्ग के दोनों हिस्सा हैं की जरूरत है

namespace ZZZ
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
         //...
    }
}

<!-- XAML -->
<Window x:Class="ZZZ.MainWindow">

10
धन्यवाद सीन। मैं यहाँ इस उत्तर को पोस्ट करने के लिए आया था लेकिन आपने मुझे पहले ही हरा दिया। यह वही है जो हुआ था और इसने मेरी समस्या हल कर दी। आपकी टिप्पणी चार्ट्स के ऊपर होनी चाहिए क्योंकि इससे मुझे 15 मिनट की बचत होती।
मैग्नम

2
यदि कक्षा के नाम समान नहीं हैं तो आपको एक ही त्रुटि
मिलेगी

2
यह उत्तर है। निश्चित नहीं है कि इसे क्यों नहीं चुना गया है, लेकिन यह ऐसा है और मैं कुछ Xamarin.Forms को कोड करने में भाग गया।
मार्कस शॉक्ले

1
जब रिफैक्टरिंग करते हैं, तो टिप्पणियों और स्ट्रिंग्स (विजुअल स्टूडियो 2015) को शामिल करना सुनिश्चित करें
गैब्रियल जीएम

3
मेरे लिए (Xamarain.Forms में) Azure से डाउनलोड की गई "क्विक स्टार्ट" परियोजना का उपयोग करते हुए, यह xmlns के बीच का सफ़ेद स्थान / इंडेंट था: x = " schemas.microsoft.com/winfx/2009/xaml " और x: क्लास जो था समस्या। मैंने इसे हटा दिया और इसे पुनः प्राप्त कर लिया और यह काम कर गया!
जेम्स

241

.Xaml फ़ाइल के लिए बिल्ड एक्शन को भी "पेज" पर सेट किया जाना चाहिए, जब प्रोजेक्ट्स के बीच xaml फ़ाइल को स्थानांतरित करना यह सेटिंग खो जाती है (वीएस 2010 में कम से कम)।


11
मेरे साथ ऐसा ही हो रहा था। धन्यवाद!
इग्नासियो सोलर गार्सिया

3
एक कॉपी पेस्ट के बाद ऐसा होता है कि xaml पेज से कंटेंट में बदलाव का निर्माण करता है
रॉबर्टो

4
अभी भी विजुअल स्टूडियो 2012 में होता है (अपडेट 2)
गमो

8
अभी भी दृश्य स्टूडियो 2013 में होता है
क्रिस रे

7
गंभीरता से ... क्यों Microsoft, क्यों? क्या आप मुझसे / हमसे नफरत करते हैं?
qwertoyo

106

जो लोग डीबग मोड में कोई त्रुटि नहीं है, लेकिन के लिए करना रिलीज मोड में निर्दिष्ट त्रुटि है (और अभी तक परियोजना ठीक चलता है), यहाँ कुछ सरल कोशिश करने के लिए है:

  1. XAML फ़ाइल को आपत्तिजनक xaml.cs फ़ाइल के अनुसार खोलें।
  2. एक संपादन करें - कोई भी संपादन, जैसे कहीं जगह जोड़ें
  3. फ़ाइल सहेजें और इसे बंद करें

इस विधि ने मेरे लिए वीएस 2015 में काम किया, और अन्य उपयोगकर्ताओं के अनुसार, 2017 और 2019 भी


3
आज आप मेरे हीरो हैं। धन्यवाद
पीटर पीट

14
पर्याप्त रूप से, यह मेरे लिए VS2015 के साथ काम करता है। और यह सभी XAML फ़ाइलों में सभी त्रुटियों को ठीक करता है। यह वास्तव में डब्ल्यूटीएफ क्षण है।
विलियम डेनमैन

5
डांग, मैं इस एक बार फिर से जल गया। सौभाग्य से मुझे वही जवाब मिला जो मैंने पहले ही वोट कर दिया था और टिप्पणी की थी। मुझे वास्तव में ऐसा करना चाहिए, लेकिन मेरे मॉनीटर पर एक पोस्ट-इट नोट के रूप में।
विलियम डेनमैन

3
VS2017 में भी यही है और इसने इसे तय किया।
हंस

2
अभी भी VS2019 में काम करता है ...
soulflyman

29
  1. समाधान निर्देशिका पर नेविगेट करें
  2. \ Obj फ़ोल्डर हटाएँ
  3. समाधान का पुनर्निर्माण करें

मुझे इस त्रुटि का सामना करने के दौरान सामना करना पड़ा, जहाँ मैंने कुछ फ़ाइलों / फ़ोल्डरों का नाम बदला और पूर्व। * .G.cs फ़ाइलों को फिर से उत्पन्न करने की आवश्यकता थी।


लगता है कि मैं एक ही समस्या है, लेकिन यह मेरे लिए काम नहीं किया।
लकीलकी

जाँच अपने XAML के बाद ऐसा करने x:Classसे मेल खाता है Namespace.Class
जेक

tnx। यह आसान चाल मेरे लिए यह किया।
गिल एडिनो

26

इसके लिए एक बहुत विशिष्ट कारण है, और यह परियोजना सेटिंग्स में है। यह आमतौर पर तब होता है जब आप .NET 2.0 क्लास लाइब्रेरी या प्रोजेक्ट में WPF कंट्रोल / विंडो जोड़ने की कोशिश करते हैं। इस त्रुटि का कारण यह है कि परियोजना को पता नहीं है कि यह एक WPF नियंत्रण या खिड़की का निर्माण कर रहा है और इसलिए इसे C # 2.0 परियोजना के रूप में बनाने की कोशिश करता है।

समाधान में .csproj फ़ाइल को संपादित करना शामिल है। समस्या पैदा करने वाले प्रोजेक्ट पर राइट क्लिक करें और "अनलोड प्रोजेक्ट" चुनें। अनलोड किए गए प्रोजेक्ट पर राइट क्लिक करें और "Edit .csproj" चुनें। .Csproj फ़ाइल खुल जाएगी और आप XML देख सकते हैं। निम्नलिखित पंक्ति देखें:

<Import Project=…..

यह फ़ाइल के अंत के पास है, और एकमात्र रेखा जो आपके पास है शायद

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

यह .NET स्टूडियो प्रोजेक्ट के रूप में प्रोजेक्ट बनाने के लिए Visual Studio को बताता है। विजुअल स्टूडियो को यह बताने के लिए कि हम क्या करना चाहते हैं, यह वास्तव में एक WPF प्रोजेक्ट है, इसलिए हमें निम्नलिखित पंक्ति को जोड़ना होगा:

<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

यह लाइन प्रोजेक्ट को WPF प्रोजेक्ट के रूप में बनाने के लिए Visual Studio को बताएगी। अब आपकी .csproj फ़ाइल नीचे इस तरह दिखनी चाहिए:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

.Csproj फ़ाइल को सेव करें, इसे सॉल्यूशन एक्सप्लोरर में राइट क्लिक करें और "रिलोड प्रोजेक्ट" को संकलित करें और यह है, आप सब कर चुके हैं!


1
मैंने यह प्रश्न लिखने से पहले यह कोशिश की और यह मदद नहीं करता है। मुझे लगता है कि यह थोड़ा अजीब है कि मैं नए प्रोजेक्ट को संकलित नहीं कर सकता, लेकिन मेरे सहयोगी ...
user876402

1
मैंने इसे भी आजमाया और इससे कोई फायदा नहीं हुआ। नए आयात को जोड़ने से एक नई चेतावनी मिली (नीचे देखें) लेकिन मूल त्रुटि अभी भी है। "C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.WinFX.targets" को फिर से आयात नहीं किया जा सकता है। इसे पहले ही "C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.NETFramework.targets (76,3)" पर आयात किया गया था। यह सबसे अधिक संभावना एक निर्माण संलेखन त्रुटि है। इसके बाद के आयात को नजरअंदाज कर दिया जाएगा। "
user316117

मैं भी सिर्फ यह कोशिश की और यह काम नहीं किया ...?
13

धन्यवाद, यह मेरे लिए तय है, मुझे विरासत में मिली एक परियोजना पर।
MrMikeJJ

22

मेरे साथ यह तब हुआ जब मैंने आकस्मिक रूप से xaml परिभाषा से वर्ग संदर्भ हटा दिया:

मैंने जगह ले ली है

<Window x:Class="myapp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

इसके साथ पहली पंक्ति:

<RibbonWindow 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

मुझे पता है कि यह मूल प्रश्न का उत्तर नहीं है (क्योंकि thats परियोजना किसी अन्य मशीन पर बनती है), लेकिन त्रुटि संदेश एक ही था, इसलिए शायद मैं इस स्थिति से किसी की मदद करूंगा।


यह वास्तव में मेरी समस्या नहीं थी, लेकिन इसने मुझे इसे स्थानीय बनाने में मदद की। मेरे पास बिना नाम के नाम का स्थान था
Rivenfall

इसने मेरे लिए काम किया। धन्यवाद
Sinaesthetic

इससे मुझे अपना मुद्दा खोजने में मदद मिली, मेरे मामले में मुझे x याद आ रहा था: क्लास लाइन, इसे मेरे लिए तय करने में जोड़ दिया
apc

18

जब आप किसी अन्य प्रोजेक्ट से वर्ग आयात करते हैं, या xaml फ़ाइल का पथ परिवर्तित करते हैं, या xaml या पीछे .cs फ़ाइल के नामस्थान में यह त्रुटि हो सकती है।

एक: इसमें एक ऐसा नामस्थान हो सकता है जो आपके नए प्रोजेक्ट में जैसा है वैसा नहीं है

namespace TrainerB.MVC.Forms
{
     public partial class AboutDeveloper : ContentPage
     {
          public AboutDeveloper()
          {
               InitializeComponent();
          }
     }
}

जैसा कि आप देख सकते हैं कि आयातित फ़ाइल में नाम का स्थान पुराने प्रोजेक्ट के नाम से शुरू होता है: "ट्रेनरबी" , लेकिन आपके नए प्रोजेक्ट का एक अलग नाम हो सकता है, इसलिए इसे .xaml फ़ाइल में और सही नए प्रोजेक्ट नाम में बदल दें। पीछे .cs फ़ाइल

दो:

.xaml फ़ाइल के गुणों को इसमें बदलें:

एक्शन बनाएँ: एंबेडेड संसाधन

कस्टम उपकरण: MSBuild: UpdateDesignTimeXaml

Xaml फ़ाइल गुण

Xaml Namespace सही करना 01

Xaml Namespace Correcting 02


हे भगवान! वास्तव में उस समाधान के लिए धन्यवाद। मैंने वहां पाए गए हर समाधान का परीक्षण किया और कुछ भी काम नहीं किया। xamlफ़ाइल के गुणों में चाल थी । +1
इग्नाइटकोडर्स

16

सुनिश्चित करें कि xaml फ़ाइल में

<Page x:Class="Project1.Page1" ...

'Project1' नाम और 'Page1' नाम का मिलान करें


इससे मेरी समस्या हल हो गई।
ऑक्टेवियन

16

डिज़ाइनर फ़ाइल की जाँच करें ।

मेरा भी यही मुद्दा था। मेरे मामले में, कारण था कि namespaceके लिए FileName.Designer.cs (सही) से मेल नहीं खाती namespaceमें इस्तेमाल FileName.cs

बदलने namespaceके FileName.Designer.cs मिलान करने के लिए इस बात का FileName.cs तुरंत समस्या हल हो।


14

मेरे पास यह है (हालांकि यह मेरी गलती थी और मेरे द्वारा कुछ कोड को कॉपी और पेस्ट करने के बाद हुई थी; यह तब हो सकता है जब नामस्थान XAML और कोड के बीच मेल नहीं खाता है

ईजी

<UserControl x:Class="DockPanel.TreeView" />

और पीछे कोड है

namespace NotDockPanel

इससे मुझे पता चला कि मेरे डिज़ाइनर का नाम गलत है। धन्यवाद!
Ctrl S

13

एक उपयोगकर्ता-केंद्र का नाम बदलने के दौरान मुझे इसका सामना करना पड़ा। जिस तरह से मैंने तय किया कि वह InitializeComponent पर टिप्पणी करना था, सत्यापित करें कि सभी नाम सही थे (xaml और पीछे कोड), प्रोजेक्ट का निर्माण करें, InitializeComponent को फिर से बनाएँ, फिर से बनाएँ। ऐसा लगता है कि इस मुद्दे के लिए कुछ कारण / समाधान हो सकते हैं, लेकिन इस तरह से यह मेरे लिए था।


1
मैंने कुछ भी नहीं बदला? हालाँकि इस समाधान ने मेरे लिए काम किया। * .G.cs और * .gics ओब्ज फोल्डर में गायब थे, इसे टिप्पणी करते हुए और प्रोजेक्ट के निर्माण से गायब फाइलें उत्पन्न हुईं। यकीन नहीं होता कि यह इस राज्य में कैसे पहुंचा।
फिनालेबॉब

11

उपरोक्त में से किसी भी उत्तर ने मेरे लिए काम नहीं किया। मैंने डुप्लिकेट वाले को छोड़कर उन सभी की कोशिश की। हालाँकि कुछ अजीब कारणों से विजुअल स्टूडियो 2015 में मेरे क्रॉस-प्लेटफॉर्म प्रोजेक्ट में यह काम किया गया:

  1. समाधान एक्सप्लोरर में समस्या पैदा करने वाले प्रोजेक्ट पर राइट-क्लिक करें। पॉप-अप मेनू में: Add -> Class चुनें
  2. क्रॉस-प्लेटफॉर्म का चयन करें -> फॉर्म Xaml पेज। सुंदर Page1.cs मानक नाम रखें और जोड़ें पर क्लिक करें।
  3. ध्यान दें कि पिछला InitializeComponent () - समस्या किसी कारण से गायब कैसे हुई।
  4. नए बनाए गए Page1.cs को हटाएं और प्रोग्रामिंग जारी रखें जैसे कि Visual Studio ठीक काम कर रहा था।

यह एक मेरे लिए काम किया। जब मैंने InitializeComponent () विफल होना शुरू किया था, तो मैंने एक उपयोगकर्ता के पास एक कॉपी और पेस्ट और नाम बदल दिया था।
राफेल वेंचुरा

आप पृथ्वी पर कैसे इस तय पर ठोकर खाई? मैंने बाकी सब कोशिश की और यह काम किया। वीएस 2017 का उपयोग करना, इसलिए समस्या वर्तमान है।

महान, यह मेरे लिए काम किया है। बहुत बहुत धन्यवाद
IZI

9

मैं ऊपर दिए गए जवाब से सहमत हूं कि नामस्थानों का मिलान करना है। हालाँकि, मुझे इस तरह की समस्या थी जहाँ नामस्थानों का मिलान हुआ।

ठीक करने के लिए, मैंने XAML में नाम स्थान को एक INCORRECT एक में सहेजा, सहेजा, फिर इसे वापस CORRECT एक में बदल दिया। देखा!


मैंने इसे सही उत्तर के लिए एक टिप्पणी के रूप में जोड़ा होगा, लेकिन मेरे पास ऐसा करने के लिए प्रतिनिधि नहीं है :(
ऊंचाइयां 1976

इसके लिए धन्यवाद! हर तरह की कोशिशों में पागल होने के बाद मेरे लिए काम किया। मेरे समाधान ने मूल रूप से बिना किसी त्रुटि के निर्माण किया था, फिर पीसी के बाद कुछ समय के लिए सो गया था और फिर त्रुटि हो रही थी। शायद स्लीप मोड के साथ कुछ करना है?
जेरेमीबी

मेरे पास एक ही मुद्दा और समाधान था। मेरा मानना ​​है कि यह IntelliSense के साथ कुछ करना था। Xaml में नेमस्पेस बदलने से शायद इंटेलीजेंसी db में संबंधित भागों का एक अपडेट शुरू हो गया। हालांकि यह केवल एक अनुमान है।
फिशवाईडेड

8

यदि आप Xamarin प्रपत्र का उपयोग कर रहे हैं और आप XAML फ़ाइल को स्थानांतरित करते हैं तो फ़ाइल का "बिल्ड एक्शन" बदल जाता है। ज़ामरीन फॉर्म को "एक्शन बिल्ड एंबेडेड रिसोर्स" की आवश्यकता होती है।

विजुअल स्टूडियो में "बिल्ड एक्शन" लागू करें:

Select the XAML file -> Properties -> Build Action = Embedded Resource


हुर्रे फॉर यू सर / मैडम!
naspinski

7

मैं ऊपर दिए गए सभी सुझावों की कोशिश करता हूं। यदि आप सफलता के बिना भी प्रयास करते हैं तो अधिक आसान रास्ता मिलता है। एक नया पेज बनाएँ। xaml फिर अपने कोड को नए वर्ग के लिए कॉपी करें और समस्याओं के साथ कक्षा XAML को हटा दें । अधिक समय खर्च न करें।


7

संपूर्ण समाधान अनलोड करें और फिर इसे फिर से लोड करें। फिर समाधान का पुनर्निर्माण करें। इससे मेरे लिए समस्या हल हो गई।


धन्यवाद मेरे लिए काम किया!
इज़ियन

6

इस त्रुटि का एक और सामान्य कारण है यदि आपने इसमें कुछ किया है:

  1. नए UserControl बनाने के लिए प्रोजेक्ट में फ़ोल्डर पर राइट क्लिक करें। यह एक वर्ग और xaml फ़ाइल बनाता है जो फ़ोल्डर के नाम स्थान में उपयोगकर्ता नियंत्रण से निकलती है।

  2. फिर आप वर्ग के नाम स्थान को बदलने का निर्णय लेते हैं क्योंकि आप वास्तव में कोड के संगठन के लिए फ़ोल्डर्स का उपयोग कर रहे हैं। X: वर्ग विशेषता स्वचालित रूप से अपडेट नहीं होगी, इसलिए यह उस वर्ग की खोज करेगा जो मौजूद नहीं है। शायद "x: वर्ग प्रकार नामस्थान bla.blaa.blaaa" में नहीं पाया जा सकता जैसे एक बेहतर त्रुटि संदेश का उपयोग कर सकता है।


5

इस समस्या का एक और समाधान केवल संपत्ति को बदलना है-> एंबेडेड रिसोर्स से एक्सएएमएल पर एक्शन बनाएं और कुछ भी बचाएं, फिर इसे एंबेडेड रिसोर्स में वापस बदल दें। त्रुटि दूर हो जाती है।


इसने दो बार काम किया;)
फ़्लू

4

मुझे पता है कि यह एक अलग कारण के कारण उत्तर दिया गया था, लेकिन यह एक अत्यधिक हिट पोस्टिंग है और मैं एक क्लास लाइब्रेरी के साथ एक ही मुद्दे में भाग गया था। इस मामले में, यह मेरे नेमस्पेस (इस पोस्ट में यहां उत्तर दिया गया है ) में बदलाव और दोनों को संकलित करता है। विंडोइगिक्स को फिर से नहीं बना सकता है जो कि इनिशियलाइज़कम्पोनेंट () विधि को परिभाषित करता है। ऐसा इसलिए नहीं हो सका क्योंकि क्लास लाइब्रेरी csproj फाइल में WPF प्रोजेक्ट्स के लिए ProjectTypeGuid मान को याद नहीं कर रही थी। इसके लिए निर्देश यहां और यहां दिए गए हैं । मुझे लगा कि मैं उसी मामले में किसी और के मामले में साझा करूंगा। बस नाम स्थान बदलना इस मामले में पर्याप्त नहीं है।


3

मेरे साथ ऐसा हुआ क्योंकि एक Nuget पैकेज अनइंस्टालर ने App.xaml में <Application> तत्व पर सभी विशेषताओं को उड़ा दिया। इसमें x: वर्ग विशेषता शामिल है, जो अनुप्रयोग वर्ग नाम निर्दिष्ट करता है। इसलिए प्रारंभिक श्रेणी जिसमें प्रारंभ (अनाइलेजकंपोनेंट) विधि कभी भी उत्पन्न नहीं हुई थी।

मैंने App.xaml को स्रोत-नियंत्रित प्रतिलिपि पर वापस भेजकर समस्या को ठीक किया।


मुझे एक लापता एक्स: क्लास की विशेषता के कारण एक ही त्रुटि मिली, लेकिन इसका नूगेट से कोई लेना-देना नहीं था। यह बस किसी तरह गायब हो गया, शायद कुछ दृश्य स्टूडियो जादू।
इस्माइल डेगानी

3

इससे मेरे लिए हल हो गया।

मैंने App.xaml फ़ाइल में संसाधनों की टिप्पणी की थी

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <!--<ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>-->
  </Application.Resources>
</Application>

बिल्ड की त्रुटि को ठीक करने के लिए थियास पर टिप्पणी करना।

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

थोड़ा गहरा खोदने पर मैंने पाया कि {प्रोजेक्ट} \ obj \ debug में app.g.cs फ़ाइल में केवल वही समाहित है जब मैंने संसाधन में टिप्पणी छोड़ दी थी।

/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
    if (_contentLoaded) {
        return;
    }
    _contentLoaded = true;
    System.Uri resourceLocater = new System.Uri("/MyApp;component/app.xaml", System.UriKind.Relative);

    #line 1 "..\..\..\App.xaml"
    System.Windows.Application.LoadComponent(this, resourceLocater);

    #line default
    #line hidden
}

3

इंटरनेट पर इसे खोजने वालों के लिए। यदि संकलन है, तो Windows.csproj फ़ाइल की जाँच करें। 2 प्रविष्टियाँ होनी चाहिए

<Page Include="YourFile.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</Page>

<Compile Include="YourFile.xaml.cs">
  <DependentUpon>YourFile.xaml</DependentUpon>
</Compile>

मेरे csproj में मैं <DependentUpon>YourFile.xaml</DependentUpon>किसी कारण से गायब था और यह वही है जो मेरे लिए तय हो गया है!
इसहाक बेकर

3

यदि नामस्थान सही हैं, तो भी वही त्रुटि है,

बस अपने आवेदन को बंद करें और इसे फिर से खोलें

इससे आपकी समस्या हल हो सकती है


ओपन और क्लोजिंग विज़ुअल स्टूडियो का मतलब है?
लकीलीकी

कुछ बार, XDesProc.exe (Microsoft Visual Studio XAML UI डिज़ाइनर) दृश्य स्टूडियो को ठीक से काम करने के लिए रोक देगा, और xaml फ़ाइल को ठीक से लोड नहीं करेगा। तो Visual Studio को पुनरारंभ करने से मेरी समस्या हल हो गई। (आप कार्य प्रबंधक में प्रक्रियाएँ भी जा सकते हैं, और दृश्य स्टूडियो को फिर से शुरू किए बिना केवल उस प्रक्रिया को रोक सकते हैं)।
सैयद सिराज वाजिद

मुझे VS2017 में यह पता चला। मैंने बाकी सब कुछ बदल दिया था और नाम स्थान हर जगह सही थे, लेकिन InitializeComponent () कॉल में त्रुटि थी, और xaml.cs फ़ाइलों में आंशिक कीवर्ड में चेतावनी थी, जैसे "आंशिक वर्ग में केवल एक फ़ाइल है"। मैं समाधान को बंद करने और फिर से खोलने के लिए हुआ और इन दोनों मुद्दों को स्वयं हल किया।
स्टीव क्रेन

3

कुछ क्रियाओं के बाद .cs फ़ाइल और .xaml फ़ाइल का नाम अलग हो सकता है (xaml लुक में x: Class = "namespace.yourType")।

उन्हें ठीक करने के लिए एक ही हो।


3

मुझे पता चला है कि "स्टार्टअप ऑब्जेक्ट" मेरे लिए इस त्रुटि का कारण था (सेट नहीं)।

"स्टार्टअप ऑब्जेक्ट" (सेट नहीं)


प्रश्न में वर्णित अन्य सभी बारीकियां समान थीं?
मार्कलार्क

2
सटीक विशिष्टताओं पर विचार करना सटीक नहीं है कि यह प्रश्न स्पष्ट नहीं था कि अपवाद कैसे प्रकट हुआ। हालाँकि अंतर्निहित लक्षण समान है इसलिए मुझे अपने उत्तर में कुछ भी गलत नहीं दिखता है। मेरा इरादा बातचीत में जोड़ना था क्योंकि मेरे मामले में कोई जवाब / टिप्पणी मदद नहीं करती थी। मैं केवल नॉन्डेसस्क्रिप्ट संकलन त्रुटियों के लिए ज्ञान के आधार को जोड़ने का प्रयास कर रहा था।
रॉक

1
धन्यवाद! इसने मेरी समस्या हल कर दी! ऐसा लगता है कि दिए गए विकल्प ( स्टार्टअप वस्तु ) स्वचालित रूप से रीसेट जब मैं से MainWindow.xaml ले जाया गया था rootकरने के लिए Viewनिर्देशिका।
एलेक्समेल्व जूल

3

चूंकि यह 'प्राइमरीइज़कम्पोनेंट' गुम होने के बारे में समस्या के लिए थ्रेड टू थ्रेड प्रतीत होता है, मैं यहाँ अपना उत्तर शामिल करूँगा।

मुझे भी यह समस्या आ रही थी और मैंने अपने यहाँ और अन्य सभी मंचों में जो कुछ भी पाया वह सब कुछ आजमाया। Google ने मेरे लिए इस मुद्दे को हल नहीं किया। दो घंटे की हर कोशिश के बाद, मुझे आखिरकार पता लगा कि मेरे सेटअप में क्या खराबी थी ।

हमारी परियोजना में, हम MahApps से मेट्रो घटकों का उपयोग कर रहे हैं । जो दृश्य मुझे परेशान कर रहा था वह मेट्रोविन्डो से विरासत में मिला एक दृश्य था, जैसे:

<Controls:MetroWindow x:Class="ProjectNamespace.MyView"
                      xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
                      ... >

अब, मैंने अपने स्थिर संसाधनों को परिभाषित किया है

<Controls:MetroWindow.Resources>
    <prop:Resources x:Key="LocalizedStrings"/>
    ...
</Controls:MetroWindow.Resources>

इसी तरह मैंने UserControlअपने अन्य सभी विचारों में संसाधनों को परिभाषित किया है , इसलिए मैंने जो काम किया है वह काम करेगा।

हालांकि, ऐसा नहीं था Controls:MetroWindow! वहाँ मुझे पूरी तरह से संसाधन परिभाषा की आवश्यकता है:

<Controls:MetroWindow.Resources>
    <ResourceDictionary>
        <prop:Resources x:Key="LocalizedStrings"/>
        ...
    </ResourceDictionary>
</Controls:MetroWindow.Resources>

इसलिए, मेरा मुद्दा, सारांश में, एक लापता <ResourceDictionary>टैग था। मैं वास्तव में नहीं जानता कि इसने 'इनिशियलाइज़कम्पोनेंट' त्रुटि का उत्पादन क्यों किया और यह अजीब तरह से मेरा हर मशीन पर उत्पादन भी नहीं किया, लेकिन मैंने इसे कैसे तय किया। आशा है कि यह मदद करता है (शेष 0.001% लोग इस मुद्दे का सामना कर रहे हैं)।


2

मुझे बस इस समस्या का सामना करना पड़ा, और यह पता चला कि मेरी परियोजना मेरे उपयोगकर्ता फ़ोल्डर में संग्रहीत है, जो नेटवर्क पर संग्रहीत है, और हमारे पास एक क्षणिक नेटवर्क आउटेज था। मैंने एक निर्माण किया; इसने शिकायत की कि मेरी फाइल को संपादक के बाहर संशोधित किया गया था (वे नहीं थी; फ़ाइल के ताले अभी तक खराब हो गए थे), और इसने ठीक किया, त्रुटि के संबंध में त्रुटि को दूर कियाInitializeComponent() विधि के ।

BTW, यदि आप सोच रहे हैं, तो नेटवर्क ड्राइव से कुछ विकसित करना बुरा व्यवहार है। यह विशेष रूप से समस्याग्रस्त हो जाता है जब आप .NET के प्रबंधित कोड का लाभ उठाने की कोशिश कर रहे होते हैं; मेरे अनुभव में, यह हर बार आपके निर्माण के समय निकल जाता है। मैं उचित फ़ोल्डर में इस छोटे फेंक-दूर परियोजना को रखना भूल गया, और कीमत का भुगतान करना समाप्त कर दिया।


2

एक और संभावित स्पष्टीकरण यह है कि आप x86 के खिलाफ निर्माण कर रहे हैं। अपने समाधान पर राइट-क्लिक करें और कॉन्फ़िगरेशन प्रबंधक चुनें। देखें कि क्या आप किसी भी सीपीयू के बजाय x86 के खिलाफ निर्माण कर रहे हैं।


2

इसलिए मुझे लगता है कि यह एक पुराना सवाल है, लेकिन हम एक समान मुद्दा बना रहे थे। हम VS2012 का उपयोग करके एक प्रोजेक्ट बनाने में सक्षम थे, लेकिन कमांड लाइन से msbuild का उपयोग नहीं कर रहे थे। मैं .proj फ़ाइल में गया और देखा कि उसके पास "प्रोजेक्टग्रुप" के लिए डिफ़ॉल्ट "प्रॉपर्टीग्रुप" अनुभाग के लिए रिकॉर्ड नहीं था, इसलिए मैंने इसे जोड़ा:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

WPF के लिए कौन सा प्रोजेक्ट GUID है। मैंने तब हटा दिया और UserControl को फिर से जोड़ा और यह काम करना शुरू कर दिया। मुझे यकीन नहीं है कि अगर मुझे वह आखिरी कदम उठाना पड़ा, लेकिन यह अब मेरे लिए काम करता है।


2

कॉपी करने के बाद किसी कारण से .xaml और प्रोजेक्ट्स के बीच .cs का निर्माण कभी-कभी बदल जाता है। कृपया सुनिश्चित करें कि आपके .xaml का निर्माण पृष्ठ है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.