2009-08-04 8 views
7

जब विजुअल स्टूडियो 2008 में मेरी प्रोजेक्ट डिबगिंग करते हैं, तो मेरी सेटिंग्स.सेटिंग फ़ाइल बिल्ड के बीच रीसेट हो रही है। क्या ऐसा होने से रोकने के लिए कोई तरीका है?सेटिंग्स.सेटिंग फ़ाइल रीसेट हो रही है

धन्यवाद।

उत्तर

12

ठीक है, मुझे वह जवाब मिला जो मैं वास्तव में देख रहा था। असल में, आपको LocalFileSettingsProvider को कॉल करने की आवश्यकता है। अपग्रेड करें। हालांकि, चूंकि मैं क्लिकऑन का उपयोग करके तैनाती करूँगा, यह आपके लिए स्वचालित रूप से करेगा।


प्रश्न: ठीक है, लेकिन मुझे कैसे पता चलेगा कि अपग्रेड कब कॉल करें?

ए: अच्छा सवाल। क्लिकऑन्स में, जब आप अपने एप्लिकेशन का एक नया संस्करण स्थापित करते हैं, तो एप्लीकेशनसेटिंगबेस इसे पहचान लेगा और पॉइंट सेटिंग्स पर आपके लिए स्वचालित रूप से सेटिंग्स को अपग्रेड कर देगा। गैर-क्लिकऑन्स मामलों में, कोई स्वचालित अपग्रेड नहीं होता है - आपको स्वयं को अपग्रेड करना होगा। अपग्रेड को कॉल करने का निर्धारण करने के लिए यहां एक विचार दिया गया है:

कॉलअपग्रेड नामक एक बूलियन सेटिंग है और इसे सही का डिफ़ॉल्ट मान दें। जब अपने अनुप्रयोग प्रारंभ हो जाता है, तो आप की तरह कुछ कर सकते हैं:

if (Properties.Settings.Value.CallUpgrade) 
{ 
    Properties.Settings.Value.Upgrade(); 
    Properties.Settings.Value.CallUpgrade = false; 
} 

यह है कि अपग्रेड सुनिश्चित करेगा() केवल पहली बार के बाद एक नया संस्करण तैनात किया जाता है आवेदन चलाता है कहा जाता है।

REF: http://blogs.msdn.com/rprabhu/articles/433979.aspx

0

मेरे सिर के ऊपर से मुझे लगता है कि आप फ़ाइल के गुणों (विजुअल स्टूडियो राइट क्लिक, प्रॉपर्टीज) में प्रोजेक्ट बनाया/चलाते समय "प्रतिलिपि न करें" विकल्प में सेट कर सकते हैं। संभवतः क्या हो रहा है जब आपकी प्रोजेक्ट बनाई गई है, सेटिंग फ़ाइल को डीबग बिन निर्देशिका में कॉपी किया गया है, जो पिछले रन से सेटिंग्स फ़ाइल को ओवरराइट कर रहा है।

+1

मैंने अभी उस विकल्प की जांच की है और यह पहले से ही "प्रतिलिपि नहीं है" पर सेट है। – Lenard

2

मेरा मानना ​​है कि सेटिंग.सेटिंग फ़ाइलें वर्तमान संस्करण संख्या के आधार पर सहेजी जाती हैं, मूल रूप से "फीचर" के रूप में जहां सेटिंग्स को मशीन पर एक ही प्रोग्राम के विभिन्न संस्करणों के बीच सहेजा नहीं जाता है। मान लें कि संकलन करते समय आप संस्करण संख्या को स्वचालित रूप से बढ़ा रहे हैं (1.0। * AssemblyInfo.cs में), आप हर बार एक नया संस्करण संकलित करते समय अपनी सेटिंग्स रीसेट कर देंगे।

इसे ठीक करने के लिए, सबसे अच्छा कोर्स एप्लिकेशन डेटा निर्देशिका में अपनी सेटिंग्स फ़ाइल को क्रमबद्ध करना होगा।

+1

यह सुनिश्चित नहीं है कि माइक्रोसॉफ्ट द्वारा इसे एक फीचर माना जाएगा। क्या आप कल्पना कर सकते हैं कि हर बार माइक्रोसॉफ्ट ने अपने सॉफ्टवेयर को अपडेट किया होगा? वे क्यों सोचेंगे कि यह "हम" डेवलपर्स के लिए अलग होगा? :) आपके जवाब के लिए धन्यवाद! – Lenard

+0

यदि आप अपने संस्करण संख्या मैन्युअल रूप से अपडेट करते हैं तो यह कोई समस्या नहीं है। अंत परिणाम यह है कि उपयोगकर्ता आपके सॉफ़्टवेयर के संस्करण 1.0, 1.5, 1.7, और 2.0 स्थापित कर सकता है, और उनमें से प्रत्येक की अपनी अनूठी सेटिंग्स सहेजी जा रही हैं। इन 4 अनुप्रयोगों के बीच साझा की जा रही सेटिंग्स के लिए, आपको साझा स्थान पर अपनी सेटिंग्स फ़ाइल सहेजनी चाहिए। –

+0

मुझे एमएस द्वारा प्रदान की गई किसी भी एप्लिकेशन सेटिंग्स सुविधाओं का व्यवहार कभी पसंद नहीं आया है। यह शर्मिंदा है क्योंकि वहाँ बहुत ढांचे का प्रतीत होता है, लेकिन मुझे बस अपना खुद का खाना बनाना आसान लगता है। – AaronLS

0

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

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