2010-10-01 14 views
7

मुझे यह त्रुटि मेरे WPF एप्लिकेशन में मिल रही है। मुझे यह त्रुटि हमेशा नहीं मिलती है। अगर मैं साफ करता हूं और फिर सबकुछ पुनर्निर्माण करता हूं तो ठीक है।WPF त्रुटि CS0433

SGEN (0,0):            
error: Unable to generate a temporary class (result=1). 

SGEN (0,0): 
errorCS0433: The type 'XamlGeneratedNamespace.GeneratedInternalTypeHelper' exists in both 'library1.dll' and 'library2.dll' 

उत्तर

1

स्कॉट हैनसेलमैन द्वारा डब्ल्यूपीएफ के लिए इस मुद्दे पर चर्चा करते हुए यहां एक article है।

अन्य लोगों को इस समस्या के कारण कुछ हॉटफिक्सेस स्थापित करके इसे ठीक किया गया है। अधिक जानकारी के लिए this article देखें।

यदि आप साइट्रिक्स का उपयोग कर रहे हैं, तो आप check this out चाह सकते हैं। आपके पास अनुमति समस्या हो सकती है। यह विशेष लेख एएसपी .NET अनुप्रयोग से संबंधित है, लेकिन आपके WPF एप्लिकेशन में आपके पास एक समान समस्या हो सकती है। यह शुरू करने के लिए एक अच्छी जगह है।

+0

मैं साइट्रिक्स का उपयोग नहीं करता हूं। निश्चित नहीं है कि यह उल्लिखित आलेख में प्रदान किए गए हॉटफिक्सेस के कारण है या नहीं। मुझे आज ही यह त्रुटि मिली है।यह कई महीनों के लिए सही काम किया। – Pashec

0

यह त्रुटि लगातार संकलित एक्सएमएल क्रमबद्धता असेंबली जनरेटर से आता है। यह एक्सएमएल धारावाहिक प्रकार से कक्षाएं उत्पन्न करता है। यदि आप इसका उपयोग नहीं करते हैं, तो आप इसे प्रोजेक्ट गुणों में अनचेक कर सकते हैं।

+0

एक प्रोजेक्ट में मैं एक्सएमएल सीरियलाइजेशन असेंबली जेनरेटर का उपयोग नहीं करता इसलिए मैं इसे अक्षम करता हूं। यह मदद करता है। लेकिन मैं अभी भी उत्सुक हूं कि ऐसा क्यों हुआ और अगर इसे दोनों परियोजनाओं में sgen चलाने की आवश्यकता होगी तो इसे कैसे ठीक किया जाए। – Pashec

0

मैंने यह पता लगाने की कोशिश की कि मुझे यह जेनरेट क्लास XamlGeneratedNamespace.GeneratedInternalTypeHelper मेरी लाइब्रेरी में क्यों मिला है। MSDN says उपयोगी कुछ भी नहीं:

एक कार्यप्रवाह XAML दस्तावेज़ों के लिए CLR प्रकार उत्पन्न करने के लिए इस्तेमाल किया डिजाइनर द्वारा उत्पन्न वर्ग।

लेकिन मैं कोड की लाइन जो इस वर्ग की पीढ़ी का कारण बनता है पाया:

<Grid DataContext="{TemplateBinding InternalDataContext}"> 

मैं "क्रम बराबर" से बदल दिया:

<Grid DataContext="{Binding InternalDataContext, RelativeSource={RelativeSource TemplatedParent}}"> 

शायद यह किसी को मदद मिल सकती है।

3

आप RummageTypeRenamer का उपयोग कर सकते हैं, GeneratedInternalTypeHelper का नाम बदलने के लिए हमारे obfuscator Rummage (मैं Aldaray के लिए काम करता हूं) के साथ बंडल एक निःशुल्क टूल का उपयोग कर सकता हूं।

हम इसे GeneratedInternalTypeHelper$(ProjectName) जैसे कुछ नाम देते हैं ताकि यह परियोजनाओं में अद्वितीय हो और कभी भी संघर्ष न हो। हम अपनी सभी बिल्ड स्क्रिप्ट to get ILMerge to work (मेरे सहयोगी के निजी ब्लॉग में ब्लॉग एंट्री) में करते हैं।

+0

मेरे लिए काम किया। मैंने इसे पोस्ट-बिल्ड में रखा [जैसे] [http://stackoverflow.com/q/19436532/2772330)। –

0

आप अपने आवेदन को चलाने के बाद c: \ Users \\ AppData \ Local \ Temp \ में XmlSerializer के जेनरेट कोड को पा सकते हैं, यह कुछ.cs होगा। मेरा था: "me2ywucq.0.cs", बस इसके कोड के अंदर अपने टाइप नाम के लिए टेक्स्ट खोज।

तुम भी पथ यह जब यह कार्यावधि में विधानसभाओं बनाता करने के लिए कोड लिखते हैं बदल सकते हैं देख Changing where XmlSerializer Outputs Temporary Assemblies by scott
अपने app.config या web.config के लिए निम्न जोड़ें:

<system.xml.serialization> 
    <xmlSerializer tempFilesLocation="c:\\foo"/> 
</system.xml.serialization> 

कोड खोजने के बाद आप इसे अपने myAssembly.XmlSerializers.dll में संकलित कर सकते हैं या अपने कोड में IXmlSerializer को लागू कर सकते हैं, बिना धारावाहिकताओं के साथ संगतता को तोड़ने के।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^