मैं TeamCity का उपयोग करता हूं, जो बदले में msbuild (.NET 4) को आमंत्रित करता है। मेरे पास एक अजीब मुद्दा है कि एक निर्माण पूरा होने के बाद (और यह कोई फर्क नहीं पड़ता कि यह एक सफल निर्माण था या नहीं), msbuild.exe खुला रहता है, और फ़ाइलों में से एक को लॉक करता है, जिसका अर्थ है कि हर बार टीमसिटी कोशिश करती है अपनी कार्य निर्देशिका साफ़ करने के लिए, यह विफल रहता है, और जारी नहीं रह सकता है।
ऐसा लगभग हर बार होता है ।
मैं वास्तव में इस पर खो गया हूं, इसलिए मैं यथासंभव विस्तार प्रदान करने की कोशिश करूंगा।
- सर्वर एक इंटेल कोर i7, 2 जीबी रैम है, जिसमें विंडोज सर्वर 2008 मानक 64-बिट SP2 है।
- TeamCity में, msbuild धावक को
/m
कमांड-लाइन पैरामीटर (जो कई कोर का उपयोग करने का मतलब है) के साथ कॉन्फ़िगर किया गया है - विचाराधीन फ़ाइल हमेशा एक ही बाहरी DLL है जो .NET प्रोजेक्ट्स में से एक में संदर्भित है, पथ में
External Tools\Telerik\Telerik.Reporting.Dll
। (कई अन्य .DLL फाइलेंExternal Tools
एक समान पथ संरचना में dir में शामिल हैं जो कभी भी इस समस्या का कारण नहीं होती हैं)। वर्तमान में यह टेलरिक रिपोर्टों के परीक्षण संस्करण के साथ है, इस मामले में जो कोई अंतर करता है। - जब समस्या होती है, तो
msbuild.exe *32
टास्क प्रबंधक में हमेशा कई प्रक्रियाएं सूचीबद्ध होती हैं: मेरा मानना है कि 7. प्रक्रिया एक्सप्लोरर का उपयोग करके, वे सभी शीर्ष-स्तरीय प्रक्रियाओं (माता-पिता नहीं) की तरह दिखते हैं। वे सभी 20-50MB से उपयोग कर रहे हैं RAM, और 0.0% CPU। - अगर मैं 1-3 मिनट प्रतीक्षा करता हूं, तो msbuild.exe प्रक्रिया अपने आप ही बाहर निकल जाती है, और TeamCity तब कार्य निर्देशिका को ठीक से अपडेट कर सकती है।
- यदि मैं मैन्युअल रूप से msbuild प्रक्रियाओं को समाप्त करता हूं, तो TeamCity का अपडेट तुरंत फिर से काम करेगा।
- अनुक्रमण सेवाओं को विंडोज में बंद कर दिया जाता है (हालांकि पहले के दो अंक बहुत अधिक पुष्टि करते हैं कि यह msbuild.exe समस्या पैदा कर रहा है)।
- Telerik.reporting.dll पर कोई विशेष गुण नहीं हैं। केवल एसवीएन संपत्ति है
svn:mime-type = application/octet-stream
क्या इससे पहले किसी ने इसे चलाया है?
/m /nr:false
, मैं कुछ बिल्ड के लिए दौड़ूंगा और देखूंगा कि यह कैसे चलता है। धन्यवाद