द्वारा बनाए गए XmlSerializers.dll का उपयोग नहीं कर रहा है मेरे विजुअल स्टूडियो 2010 प्रोजेक्ट में, मैं XmlSerializers.dll बनाने के लिए sgen का उपयोग करने के लिए निम्न पोस्ट-बिल्ड इवेंट कमांड लाइन का उपयोग करता हूं।XmlSerializer sgen
पोस्ट घटना का निर्माण:
"$(ProgramFiles)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\sgen.exe" /a:"$(TargetPath)" /c:/keyfile:"c:\myproject\mykey.snk" /f
मेरे परियोजना मजबूत नामित है, इसलिए मजबूत नाम "XmlSerializers.dll" करने के लिए एक ही कुंजी का उपयोग करें। वीएस आउटपुट फ़ोल्डर में XmlSerializers.dll बनाता है।
हालांकि, मैंने ProcessMonitor का उपयोग करके देखा है, .NET अभी भी रनटाइम पर CSC.exe का आह्वान करता है। मैं इस post पर आया, जहां उपयोगकर्ता को समान समस्या थी और XmlSerializer (टाइप) कन्स्ट्रक्टर का उपयोग करके हल किया गया था।
मैं अपने कोड में एक ही तकनीक का इस्तेमाल किया लेकिन यह अभी भी Csc.exe आह्वान:
var fs = new FileStream(SettingsFilePath, FileMode.Open);
try
{
var serializer = new XmlSerializer(typeof(AppSettings));
settings = (AppSettings)serializer.Deserialize(fs);
}
finally
{
fs.Close();
}
कारण मैं प्रदर्शन के कारण, precompiled एक्सएमएल क्रमबद्धता उपयोग करने की आवश्यकता है और यह भी मैं कभी कभी Csc.exe मिली त्रुटियाँ पर देखा है विंडोज शटडाउन शॉर्टडाउन के दौरान फॉर्म बंद होने पर मेरा एप्लिकेशन डेटा सहेजता है, यह विफल रहता है क्योंकि विंडोज शट डाउन अनुक्रम के दौरान एक नई प्रक्रिया शुरू करने की अनुमति नहीं देगा। मैंने एक्सएमएल सीरियलाइजेशन को प्रीकंपलिंग करके इसके आसपास होने के लिए सिफारिशें देखी हैं।
XmlSerializer sgen द्वारा बनाए गए XmlSerializers.dll का उपयोग क्यों नहीं कर रहा है इसके बारे में कोई सुझाव?
धन्यवाद।
शट डाउन समस्या के लिए सबसे आसान इलाज स्टार्टअप पर डेटा लोड करना है। असेंबली रिज़ॉल्यूशन की जांच के लिए fuslogvw.exe का उपयोग करें। –
धन्यवाद, मेनफॉर्म बंद होने पर मुझे डेटा को सहेजने की आवश्यकता है (एक्सएमएल को क्रमबद्ध करें)। उपयोगकर्ता द्वारा सामान्य बंद होने के दौरान ठीक है, कोई त्रुटि नहीं, डेटा क्रमबद्ध है। हालांकि, अगर मेरा एप्लिकेशन चल रहा है और विंडोज शटडाउन है तो मैं CSC.exe त्रुटियों को देखता हूं। – Din