2011-06-06 14 views
6

मैं एक MVVM ट्यूटोरियल के माध्यम से काम कर रहा हूँ, और मैं निम्नलिखित कोड, Xaml में लिखा है:XAML xmlns: स्थानीय सी #

<Window x:Class="WPFMVVM.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WPFMVVM; assembly=WPFMVVM" 
    Title="MainWindow" Height="388" Width="545"> 

xmlns: स्थानीय लाइन कह रही है कि WPFMVVM विधानसभा संदर्भित नहीं है शिकायत कर रहा है। यद्यपि यह वह विधानसभा है जिसमें मैं काम कर रहा हूं।

कोई भी जानता है क्यों?

धन्यवाद

उत्तर

12

अगर यह विधानसभा आप में काम सिर्फ assembly निर्दिष्ट नहीं करते है आप & में रिक्त स्थान नहीं होना चाहिए।

xmlns:local="clr-namespace:WPFMVVM" 

assembly पैरामीटर संदर्भित विधानसभाओं के लिए है। MSDN article on XAML namespaces भी देखें।

असेंबली को छोड़ा जा सकता है यदि क्लियर-नेमस्पेस संदर्भित किया गया है, तो कस्टम क्लास का संदर्भ देने वाले एप्लिकेशन कोड के समान असेंबली के भीतर परिभाषित किया जा रहा है। या, इस मामले के लिए समकक्ष वाक्यविन्यास असेंबली = निर्दिष्ट करने के लिए असेंबली = निर्दिष्ट करने के लिए है।

+0

मुझे अभी भी एक त्रुटि मिल रही है कि 'विधानसभा को एक्सएएमएल फाइलों के लिए निर्दिष्ट किया जाना चाहिए जो परियोजना का हिस्सा नहीं हैं? कोई विचार? धन्यवाद। –

+0

क्या यह फिर से काम करना बंद कर दिया है? (चूंकि आपने अपनी पिछली टिप्पणी हटा दी है) –

+0

हाय, हां यह है। उम्मीद थी कि मैंने इसे देखा था इससे पहले कि मैंने इसे हटा दिया था। यह अभी भी एक ही समस्या है। धन्यवाद। –

4

सुनिश्चित नहीं है कि इससे मदद मिलेगी या नहीं, लेकिन मुझे एक ही समस्या थी और इसे दो अलग-अलग परियोजनाओं पर ठीक करने में कामयाब रहा। मैंने प्रोजेक्ट पर राइट क्लिक किया और बिल्ड पर क्लिक किया। एक बार निर्माण पूरा हो जाने के बाद, त्रुटियां चली गईं। मैं कोई एक्सएमएल विशेषज्ञ या कुछ नहीं हूं, लेकिन कोड को देख रहा हूं, यह xmlns: myns = "clr-namespace: somethingorother" कहता है। यदि यह एक क्लियर-नेमस्पेस है, तो इसे अस्तित्व में रखने के लिए इसे संकलित किया जाना चाहिए।

2

एक्सएमएल बिल्डर में एक बग है। निर्माण के पहले प्रयास पर, विफलता के कारण डीबग \ obj में सभी req'd फ़ाइलों को req'd कारण नहीं है। निर्माण के दूसरे प्रयास पर, डीबग \ obj में अधिक फ़ाइलें बनाई गई हैं, लेकिन सभी को xaml के लिए req'd नहीं किया गया है। यदि आप तीसरी बार बनाते हैं, तो डीबग \ obj में होने वाली सभी फाइलें आखिरकार बनाई गई हैं, और xaml संकलित होगा।

यही कारण है कि जब आप समाधान को साफ या पुनर्निर्माण करते हैं, तब तक समस्या तब तक प्रकट होती है जब तक आप समाधान का निर्माण/निर्माण नहीं करते।

यह केवल एक समस्या है जब नामस्थान xaml के समान असेंबली में होता है। यदि नामस्थान किसी अन्य असेंबली में है, और दूसरी असेंबली मौजूद है, तो आपको एक सफल निर्माण मिलेगा। यदि अन्य असेंबली मौजूद नहीं है, तो स्पष्ट रूप से निर्माण विफल हो जाएगा।

2

ज्ञात समस्या है। आप 64 बिट मशीन पर काम कर रहे हैं। विकास प्रक्रिया पर बस x86 बिल्ड कॉन्फ़िगरेशन सेट करें।