33

के साथ एक लंबी संकलन के दौरान विजुअल स्टूडियो 2005 (संस्करण 8.0.50727.762), मैं कभी कभी कुछ परियोजना में कई फ़ाइलों में निम्न त्रुटि मिलती है:संकलन बेतरतीब ढंग से विफल रहता है: "खुला प्रोग्राम डेटाबेस नहीं कर सकते हैं"

fatal error C1033: cannot open program database 'v:\temp\apprtctest\win32\release\vc80.pdb' 

(उल्लिखित फ़ाइल या तो vc80.pdb या vc80.idb प्रोजेक्ट के temp dir में है।)

उसी प्रोजेक्ट का अगला निर्माण सफल होता है। कोई अन्य विजुअल स्टूडियो खुला नहीं है जो एक ही फाइल तक पहुंच सकता है।

यह एक गंभीर समस्या है क्योंकि यह रात के संकलन को असंभव बनाता है।

+1

आपके पास ड्रॉपबॉक्स \ Google ड्राइव या इसी तरह के उत्पाद में भी आपका प्रोजेक्ट हो सकता है। –

उत्तर

20

यह संभव है कि एक एंटीवायरस या एक समान प्रोग्राम पीडीबी फ़ाइल को लिखने पर छू रहा हो - एंटीवायरस इस परिदृश्य में सबसे अधिक संभावना है। मुझे डर है कि मैं आपको केवल कुछ सामान्य पॉइंटर्स दे सकता हूं, जो कि हमारे दुकान में रात के निर्माण को स्थापित करने में मेरे पिछले अनुभव के आधार पर है। इनमें से कुछ मामूली लग सकते हैं, लेकिन मैं उन्हें पूरा करने के लिए शामिल कर रहा हूं।

  • सबसे पहले और सबसे महत्वपूर्ण: सुनिश्चित करें कि आप एक स्वच्छ स्लेट के साथ शुरू करें। यही है, अपनी रात को शुरू करने से पहले बिल्ड की आउटपुट निर्देशिका को बल-हटाएं।
  • यदि आपके एंटीवायरस, एंटीस्पायवेयर या आपकी रात की मशीन पर ऐसे अन्य प्रोग्राम हैं, तो उन्हें हटाने पर विचार करें। यदि यह कोई विकल्प नहीं है, तो प्रोग्राम के बहिष्करण सूची में अपना obj फ़ोल्डर जोड़ें।
  • (वैकल्पिक) अपने रात के हिस्से के रूप में वीसीबिल्ड या एमएसबिल्ड जैसे उपकरणों का उपयोग करने पर विचार करें। मुझे लगता है कि यदि आप मल्टीकोर मशीन पर हैं तो MSBuild का उपयोग करना बेहतर है। हम रिलीज के लिए रात्रिभोज और एमएसबिल्ड के लिए IncrediBuild का उपयोग करते हैं, और आपके द्वारा वर्णित समस्या का कभी सामना नहीं किया।

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

+0

मुझे लगता है कि यह समस्या है। – Lev

+0

आम तौर पर एंटी-वायरस ऑन-एक्सेस स्कैनर फ़ाइल-सिस्टम फ़िल्टर स्थापित करके काम करते हैं। उपयोगकर्ता-मोड प्रोग्रामों में कोई अंतर नहीं दिखना चाहिए। खोज सूचक या समान होने की अधिक संभावना है। –

+0

एंटीवायरस को बंद करने में मदद मिली! – Lev

21

हमने इसे अपनी साइट पर भी बहुत कुछ देखा है। This explanation, पीटर कॉफ़मैन से, सबसे प्रशंसनीय हमारे सेटअप के आधार पर हो रहा है:

जब दृश्य स्टूडियो 2005 में एक समाधान का निर्माण, आप गंभीर त्रुटि C1033 तरह त्रुटियों मिलती है: नहीं खुला प्रोग्राम डेटाबेस 'xxx \ डिबग कर सकते हैं \ vc80। pdb '। हालांकि, दूसरी बार निर्माण चलाने पर, यह आमतौर पर सफल होता है।

कारण: यह संभव है कि समाधान में दो परियोजनाएं उसी आउटपुट (जैसे 'xxx \ debug') पर अपना आउटपुट लिख रही हों। यदि समानांतर परियोजना की अधिकतम संख्या टूल्स - विकल्प, प्रोजेक्ट्स और सॉल्यूशंस में सेटिंग बनाती है - बिल्ड और रन 1 से अधिक मान पर सेट है, तो इसका मतलब है कि दो कंपाइलर थ्रेड एक ही फाइल को एक साथ एक्सेस करने का प्रयास कर सकते हैं, जिसके परिणामस्वरूप एक फ़ाइल हो सकती है संघर्ष साझा करना समाधान: अपनी परियोजना की सेटिंग्स जांचें और सुनिश्चित करें कि कोई भी दो परियोजनाएं आउटपुट, लक्ष्य या किसी भी प्रकार की इंटरमीडिएट फ़ाइलों के लिए एक ही निर्देशिका का उपयोग नहीं कर रही हैं। या त्वरित वर्कअराउंड के लिए समानांतर परियोजना की अधिकतम संख्या को 1 पर सेट करने के लिए सेट करें। क्लाउड लाइब्रेरी के साथ आए वीएस प्रोजेक्ट फ़ाइलों का उपयोग करते समय मुझे इस समस्या का अनुभव हुआ। अद्यतन: एक मौका है कि टोर्टोइज एसवीएन 'vc80.pdb' तक पहुंचता है, भले ही फ़ाइल संस्करण नियंत्रण में न हो, भले ही ऊपर वर्णित त्रुटि (इसके बारे में रिपोर्ट करने के लिए लिआना के लिए धन्यवाद) हो। हालांकि, मैं इसकी पुष्टि नहीं कर सकता, क्योंकि यह सुनिश्चित करने के बाद कि मैं सभी परियोजनाओं के लिए विभिन्न आउटपुट निर्देशिकाओं का उपयोग कर रहा हूं, समस्या को दोबारा उत्पन्न नहीं कर सका।

+0

धन्यवाद, लेकिन दोनों में से कोई भी मेरा मामला नहीं है (जब तक कोई अपडेट नहीं किया जा रहा है तब तक टीएसवीएन पृष्ठभूमि में कुछ करता है)। – Lev

+2

बस यह कहना चाहता था कि मैंने इस त्रुटि को पहले देखा है और समांतर बिल्डों की संख्या को मेरे लिए तय किया है ... हालांकि स्पष्ट रूप से, ओपी ने कुछ अलग अनुभव किया। –

+0

धन्यवाद। मुझे कल से ही हर संकलन पर एक ही त्रुटि मिल रही थी और मुझे हर बार इसे ठीक से संकलित करने के लिए निर्माण को साफ करना पड़ा। ऐसा लगता है कि कछुआ एसवीएन अनइंस्टॉल करने से मेरे मामले में अब समस्या ठीक हो गई है। – localhost

6

यह आमतौर पर तब होता है जब डिबगिंग पर आपके पिछले प्रयासों ने पूरी तरह से डीबगर को नहीं मारा है। कार्य प्रबंधक में vcjit नामक प्रक्रिया की तलाश करें, इसे मार दें और पुनः प्रयास करें। सबसे खराब विकल्प दृश्य स्टूडियो को पुनरारंभ करें, इससे आपकी समस्या हल होनी चाहिए।

0

क्या आप LinqToSql का उपयोग कर रहे हैं? शायद यह अजीब त्रुटि के समान है जैसा कि मैंने कभी-कभी अनुभव किया होगा जैसा कि मैंने इस प्रश्न में पूछा था: What causes Visual Studio to fail to load an assembly incorrectly?

+0

संख्या :-( – Lev

1

मुझे आज यह समस्या थी और यह पीडीबी के रास्ते में गैर-उत्तर वर्णों के रूप में सामने आया।

मैं खिड़कियों का उपयोग कर रहा VMware के माध्यम से, और मेरी परियोजना एक साझा स्थान में किया गया था: \ VMware मेजबान \ साझा फ़ोल्डरों \ परियोजना

जब मैंने इसे ले जाया गया है \ Users \ जूलियन \ परियोजना यह समस्या हल हो गई।

1

सही वी.एस. की excutable फ़ाइल क्लिक करें कोशिश .... फिर प्रॉपर्टीज़> संगतता-> टिक "के लिए compatibilty मोड में इस कार्यक्रम चलाएँ:" बंद ........

7

स्विच डिबग पीडीबी का उपयोग करने के बजाय सी 7 प्रारूप की जानकारी।

Project Options -> C/C++ -> General -> Debug Information Format और इसे C7 पर सेट करें।

+0

यह निराशा के दिनों के बाद काम करता है। आपको आशीर्वाद दें। * क्यों * mspdbsrv.exe क्रैश हो रहा था। –

0

मैंने अपने मध्यवर्ती निर्देशिका बदल दिया है:

%TEMP%\$(ProjectName)\$(Platform)\$(Configuration)\ 

C:\temp\$(ProjectName)\$(Platform)\$(Configuration)\ 

को अब यह काम करता है। कोई विचार क्यों नहीं।

1

मुझे अपने ड्रॉपबॉक्स फ़ोल्डर में स्थित एक प्रोजेक्ट पर काम करते समय भी एक ही समस्या थी। मैंने पाया कि यह इस त्रुटि को फेंक देगा जब सिस्टम ट्रे में ड्रॉपबॉक्स आइकन पर छोटा "सिंकिंग" आइकन चल रहा था, क्योंकि ड्रॉपबॉक्स फ़ाइलों को उनके सर्वर पर अपलोड करने के लिए एक्सेस कर रहा था। जब तक ड्रॉपबॉक्स ने सिंक्रनाइज़ेशन समाप्त नहीं किया, तब तक मैंने निर्माण करने का इंतजार किया, यह हर बार काम करता था।

+0

यह समझ में आता है - यह मेरे लिए भी लागू होता है और सिंकिंग को रोकता है इसे तय करें। –

1

मैं बस इस समस्या में भाग गया। विजुअल स्टूडियो vc100.pdb खोलने में सक्षम नहीं होने के बारे में शिकायत कर रहा था। मैंने procexp का उपयोग करके इस फ़ाइल में खुली फ़ाइल हैंडल की तलाश की और पाया कि प्रक्रिया mspdbsrv में एक खुली फ़ाइल हैंडल थी। इस प्रक्रिया को मारने से इस मुद्दे को हल किया गया और मैं संकलित करने में सक्षम था।

0

मैं एक ही समस्या C1033: cannot open program database है,

परिदृश्य

मेरे पास दो dll के parent.dll और child.dll .मैं पर विजुअल स्टूडियो डीबगर के साथ सिर्फ संलग्न child.dll परियोजना उसी समय मैं parent.dll प्रोजेक्ट बनाने की कोशिश कर रहा हूं, त्रुटि C1033: cannot open program database

समाधान

डीबगिंग से जुड़ी प्रक्रिया को डीबग करना बंद करें और मार दें।परियोजना

0

यह लगातार मुझे करने के लिए होता है अगर मैं Ctrl + तोड़ निर्माण (vs2015) को रद्द करने के पुनर्निर्माण। ऐसी कुछ प्रक्रिया है जो ठीक से बंद नहीं होती है। मैं एक क्रोध "एंड टास्किंग" एमएस/बनाम संबंधित प्रक्रियाओं (डुप्लिकेट के लिए देखो) पर चला गया और मेरा निर्माण फिर से काम किया। एक पुनरारंभ शायद भी काम करेगा। जैसा कि gnu binutils में जाना होगा।

परेशान अनलॉकर उपकरण फ़ाइल लॉक करने वाली किसी भी प्रक्रिया की रिपोर्ट नहीं करते हैं, विंडोज़ मुझे .pdb हटा नहीं देती है लेकिन मैं इसका नाम बदल सकता हूं। मेरा अनुमान है कि निर्माण के दौरान एक ही समय में दो प्रक्रियाएं कूदें।