2010-03-16 25 views
28

हर बार जब मैं सॉफ़्टवेयर का एक नया टुकड़ा शुरू करता हूं तो मुझे कॉन्फ़िगरेशन में जाना होगा और रिलीज बिल्ड के लिए पीडीबी फ़ाइल पीढ़ी और विजुअल स्टूडियो होस्टिंग प्रक्रिया को बंद करना होगा। क्या विजुअल स्टूडियो (2008 विशेष रूप से) को बताने का कोई तरीका है कि मैं बाकी सभी परियोजनाओं के लिए ऐसा करना चाहता हूं?सभी रिलीज के लिए पीडीबी पीढ़ी और vshost को बंद करने के लिए कैसे करें

+0

रिलीज बिल्ड के लिए आप पीडीबी क्यों बंद करना चाहते हैं? देखें http://stackoverflow.com/questions/2371032 –

+1

मैं ज्यादातर आंतरिक सॉफ़्टवेयर पर काम करता हूं और हमारे पास स्वचालित बिल्ड (अभी तक) नहीं है, इसलिए यह रोल करने वाले लोगों को बनाने के लिए पहले से ही जहाज/अचयनित करने के लिए एक और फ़ाइल है सॉफ्टवेयर। मैं बस चीजों को उनके और मेरे लिए जितना संभव हो उतना स्वच्छ और आसान बनाने की कोशिश कर रहा हूं। –

+0

लेकिन पीडीबी प्रदान नहीं करना इसे डीबग करना कठिन बना देगा। –

उत्तर

15

कुछ खोदने के बाद, ऐसा लगता है कि सी # के लिए प्रोजेक्ट फाइलें \program files\microsoft visual studio 9.0\common7\ide\projecttemplatescache\csharp\windows\1033 में संग्रहीत हैं। प्रासंगिक खंडों के <UseVSHostingProcess>false</UseVSHostingProcess> को सही अनुभागों में जोड़कर (डीबग और रिलीज कॉन्फ़िगरेशन के लिए अलग-अलग अनुभाग हैं), आप चयनित प्रकार की सभी भविष्य की परियोजनाओं के लिए होस्टिंग प्रक्रिया को बंद कर सकते हैं।

आप एक समान तरीके से PDB मुद्दे को सुलझाने में सक्षम होना चाहिए, लेकिन जैसा कि मैंने कहा कि मैं उन को बंद करने की सलाह नहीं देते, तो मैं एक व्यायाम :)

यह VS2008 पर लागू होता है के रूप में यह छोड़ देंगे , लेकिन मेरा अनुमान है कि अन्य संस्करणों में एक समान योजना है। वास्तव में, वीएस -2010 एक ही दृष्टिकोण का उपयोग करता है, लेकिन स्पष्ट रूप से निर्देशिका में संस्करण संख्या 9.0 के बजाय 10.0 है। > बिल्ड - -

+0

रिकॉर्ड के लिए, और चूंकि Google ने मुझे उस धागे पर ले जाया, यह चाल VS2012 पर भी लागू होती है (कम से कम होस्टिंग प्रक्रिया के लिए, मैं नहीं करता हूं ' टी पीडीबी फाइलों को अक्षम करना चाहते हैं इसलिए कोशिश नहीं की गई)। धन्यवाद, तुमने मेरा दिन बनाया! – psycho

+0

मेरी '.csproj' फ़ाइल में इसे बंद करने से संकलन करते समय 'MSB3027' का कारण बन गया। यही है, आउटपुट फ़ाइल को लॉक होने के बाद लिखा नहीं जा सकता है। – l33t

+0

@ l33t क्या आपको फ़ाइल बंद करना याद आया? यदि यह अभी भी खुला है तो इसे लॉक कर दिया जाएगा। मैंने बस इसे VS2012 पर सत्यापित किया। –

2

एक पोस्ट बिल्ड चरण क्यों न जोड़ें जो इन फ़ाइलों को हटा देता है जिन्हें आप नहीं चाहते हैं। हम्म, यह अभी भी एक और कदम है, जो आप चाहते थे :-(

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

प्लस क्योंकि यह एक सहायक ऐप है जिसे आप अभी चला सकते हैं यह एक बार कर्मचारियों को रिहा करने के लिए आपके प्री-हैंडऑफ के हिस्से के रूप में।

हम इस तकनीक का उपयोग बहुत सी चीजों के लिए करते हैं:

  • सुनिश्चित करना DLLs तारीख (पूरे निर्माण पेड़ के लिए मूल रूप से एक बुद्धिमान अद्यतन)
  • सफाई कुलपति से "बैच का निर्माण"
  • संग्रहीत कर रहा है (उन फ़ाइलों है कि दृश्य स्टूडियो कुचल सकता है में से कुछ को हटाने) कर सकते हैं बेहतर बनाता है अप करने के लिए कर रहे हैं आप इन फ़ाइलों को रखना चाहिए - एक विशेष फैशन (मैं तुम्हारे लिए क्या सुझाव दिया है के समान)
  • आदि

मैं ब्रायन के साथ कर रहा हूँ में कुछ। अगर आपको किसी भी बग या विफलता को डीबग करने की आवश्यकता है, तो आपको इन फ़ाइलों की आवश्यकता होगी।

+0

मैं सहमत हूं - उन्हें दबाएं या पीडीबी को हटाएं - बस उन्हें तैनाती पैकेज से हटा दें और उन्हें अपने निर्माण के साथ संग्रहित करें: http://www.wintellect.com/CS/blogs/jrobbins/archive/2009 /05/11/pdb-files-what-every-developer-must-know.aspx –

11

वी.एस. 2010 में आप प्रोजेक्ट गुण के तहत .pdb पीढ़ी को नियंत्रित करने के लिए एक परियोजना संपत्ति मिलेगा> उन्नत ... -> डीबग जानकारी

सेट करें "कोई नहीं" .pdb पीढ़ी को दबाने के लिए करने के लिए।

+0

हालांकि यह प्रति परियोजना आधार पर है। उस समय मैं प्रत्येक परियोजना में हमेशा के लिए सभी परियोजनाओं के लिए ऐसा करना चाहता था, क्योंकि इसे स्थापित किया गया था और इसे बदल दिया गया था। –

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

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