हमारी टीम में हम दृश्य स्टूडियो 2008 टीम फाउंडेशन सर्वर स्रोत नियंत्रण में है, जिसमें एक डेटाबेस परियोजना की वजह से लोड नहीं करता है। प्रत्येक दो हफ्ते या तो, एक सहकर्मी की जांच के बाद, प्रोजेक्ट फ़ाइल अन्य डेवलपर्स मशीनों पर लोड नहीं होगी। त्रुटि संदेश है:विजुअल स्टूडियो 2008 प्रोजेक्ट फाइल एक अप्रत्याशित एन्कोडिंग परिवर्तन
प्रोजेक्ट फ़ाइल लोड नहीं की जा सकी। रूट स्तर पर डेटा अमान्य है। लाइन 1, स्थिति 1.
जब मैं नोटपैड में प्रोजेक्ट फाइल ++ को देखो, फ़ाइल इस तरह दिखता है:
��<NUL?NULxNULmNULlNUL NULvNULeNULrNULsNULiNULoNULnNUL
...
और इतने पर (आप इस में <?xml version
देख सकते हैं) जबकि एक सामान्य परियोजना फ़ाइल लगता है:
<?xml version="1.0" encoding="utf-16"?>
...
तो शायद कुछ ENC साथ कुछ गड़बड़ है फ़ाइल की oding। यह हमारे लिए एक समस्या है क्योंकि फाइल एन्कोडिंग को फिर से सही करना असंभव हो जाता है। 'समाधान' प्रोजेक्ट फ़ाइल को फेंकना है ताकि स्रोत नियंत्रण से अंतिम ज्ञान वाले संस्करण को प्राप्त किया जा सके।
फ़ाइल के अनुसार, एन्कोडिंग UTF-16 होना चाहिए। नोटपैड ++ के अनुसार, दूषित फ़ाइल वास्तव में यूटीएफ -8 है।
मेरे प्रश्न हैं:
- क्यों दृश्य स्टूडियो ऊपर एन्कोडिंग प्रोजेक्ट फाइल की, खिलवाड़ है जाहिरा तौर पर यादृच्छिक समय पर और यादृच्छिक मशीनों पर?
- हम इसे रोकने के लिए क्या करना चाहिए?
- जब यह हुआ है, वहाँ सही एन्कोडिंग बजाय स्रोत नियंत्रण से एक पुराने संस्करण खींच की में वर्तमान फ़ाइल को पुनर्स्थापित करने के लिए एक संभावना है?
अंतिम नोट के रूप में: समस्या एक एकल प्रोजेक्ट फ़ाइल के साथ है, अन्य सभी प्रोजेक्ट फाइलें इस समस्या का पर्दाफाश नहीं करती हैं।
अद्यतन: जॉन स्कीट के सुझाव के लिए धन्यवाद, मेरे पास प्रश्न संख्या तीन का जवाब है। जब मैं पहली बार नौ बाइट्स दो बाइट्स एफएफ एफई द्वारा एफई बी बी बीएफ एफई बीएफ BD एफई बीएफ BD की जगह, परियोजना फ़ाइल को फिर से लोड होगा।
यह अभी भी सवाल छोड़ क्यों दृश्य स्टूडियो फ़ाइल भ्रष्ट।
यदि आप टूटी हुई और काम करने वाली फ़ाइलों के बीच बाइनरी diff करते हैं तो आप क्या देखते हैं? मुझे आश्चर्य है कि यह एक यूटीएफ -16 एंडियननेस मुद्दा है। –
यदि मैं बाइनरी diff करता हूं तो यह पता चला है कि फाइल इंडेंटिकल हैं सिवाय इसके कि सही शुरुआत में दो अतिरिक्त बाइट्स हैं, एफएफ एफई, और भ्रष्ट व्यक्ति के पास 9 अतिरिक्त बाइट ईएफ बीबी बीएफ ईएफ बीएफ बीडी ईएफ बीएफ बीडी था। – Xenan