10

हम एक काफी जटिल दृश्य स्टूडियो समाधान है (57 परियोजनाओं, जिसमें से 19 वेबसाइट जो जब कोड को आगे बढ़ाने से चालू होने वाले लगभग हर समय का निर्माण करने में विफल रहता है, लेकिन फिर हम स्वयं निर्माण को गति प्रदान और पुनः प्रयास पर यह ठीक काम करता है।दृश्य स्टूडियो वेबसाइट बनाने सीआई सर्वर पर रुक-रुक कर विफल रहता है

इस समाधान में 57 परियोजनाएं हैं, जिनमें से 1 वेबसाइट परियोजनाएं हैं। (वेब ​​अनुप्रयोग परियोजनाएं नहीं, कोई .csproj फ़ाइल नहीं है।) शेष कक्षा पुस्तकालय और पृष्ठभूमि नौकरियां हैं। 1 9 वेबसाइट परियोजनाओं को आईआईएस आभासी निर्देशिकाओं में एक बड़ी बहुआयामी सामग्री प्रबंधन प्रणाली में संरचित किया गया है।

बिल्ड सर्वर हडसन v1.395 है। निर्माण करने के लिए उपयोग किया जाने वाला आदेश है:

"C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" "SolutionName.sln" /rebuild Debug 

जब निर्माण में विफल रहता है, यह हमेशा तो ठीक उसी वेबसाइट परियोजना पर करता है, ठीक उसी संदेश के साथ:

------ Rebuild All started: Project: C:\...\WebsiteName\, Configuration: Debug Any CPU ------ 
Validating Web Site 
: Build (web): The application domain in which the thread was running has been unloaded. 

Validation Complete 

एक Google Search for this message वर्तमान में सहायक से कम है। This link वास्तविक समस्या के सबसे निकटतम हो जाता है लेकिन इसमें कोई समाधान नहीं है। स्पष्ट रूप से हम निर्माण के दौरान किसी भी समाधान फ़ाइलों को नहीं बदल रहे हैं क्योंकि यह बिल्ड सर्वर पर हो रहा है।

जब यह विफल रहता है, हम स्वयं निर्माण को गति प्रदान, और हम हम उम्मीद करते हैं के रूप में (क्षमा करें, संशोधित) मिलती है:

------ Rebuild All started: Project: C:\...\News2\, Configuration: Debug Any CPU ------ 
Validating Web Site 
Building directory '/WebsiteName/Dir1/Dir2/'. 
Building directory '/WebsiteName/'. 
Building directory '/WebsiteName/Dir3/'. 
// 22 more but you get the point 

// A few warnings caused by our own use of the ObsoleteAttribute, nothing to be concerned about 
Validation Complete 

क्या इस आवेदन डोमेन उतार संदेश का कारण बन सकता है?

कुछ अन्य नोट्स:

  • हमने सोचा कि यह हडसन स्मृति से बाहर चल रहा है हो सकता है, क्योंकि हम जावा का निरीक्षण इसे काफ़ी लीक है। इसलिए, हमने हर सुबह 6 बजे हडसन सेवा को पुनरारंभ करने के लिए एक कार्य जोड़ा। यहां तक ​​कि निर्माण के दौरान जाने के लिए उपलब्ध स्मृति की एक उपलब्ध मात्रा और उपलब्ध स्मृति, यह अभी भी असफल रहा।
  • ही भंडार करने के लिए एक धक्का भी एक बहुत सरल (केवल 22 परियोजनाओं, कोई वेबसाइट परियोजनाओं) एक ही समय में समाधान के निर्माण का कारण बनता है। वह हमेशा सफल होता है। साथ ही, मैन्युअल रूप से दोनों को एक ही समय में चलाने के लिए ट्रिगर करना सफल होता है।
  • मैं जानता हूँ कि हम हडसन नवीनीकृत करना चाहिए, लेकिन वह हमेशा उन ठंडे बस्ते में परियोजनाओं हम कभी नहीं के लिए समय है लगता है में से एक है। किसी भी मामले में, मुझे काफी दृढ़ता से लगता है कि यह एक विजुअल स्टूडियो/एमएसबिल्ड समस्या है, न कि हडसन समस्या।

संपादित करें 1: MSBuild

MSBuild के साथ समस्या यह इतने सारे छोटे quirks कि दृश्य स्टूडियो में एक निर्माण से अलग देखते हैं कि है। डेवलपर मशीन पर विजुअल स्टूडियो में संकलन के समाधान के लिए यह बेहद निराशाजनक है और फिर बिल्ड सर्वर पर विफल रहता है। यहां तक ​​कि MSBuild से उत्पादन काफी (और अधिक एक बात के लिए शब्द) अलग क्या हमारे डेवलपर्स उनके निर्माण उत्पादन विंडो में देखने से है। क्या अतिरिक्त कमांड लाइन झंडे हैं जो एमएसबिल्ड आउटपुट को विजुअल स्टूडियो बिल्ड विंडो में जो भी मिलता है उसके अनुरूप है?

वहाँ अन्य चीजें हैं जो बहुत अजीब हैं। आप एक परियोजना के रूप में ही नाम के एक समाधान फ़ोल्डर है हैं तो MSBuild इसके साथ एक त्रुटि लेकिन दृश्य स्टूडियो सौदों ठीक फेंकता है। वे क्विर्क हैं जो वास्तव में आपको अपने बालों को खींचते हैं।

उत्तर

2

मैं हडसन या वेबसाइट प्रोजेक्ट से परिचित नहीं हूं (मैं टीमसिटी और वेब एप्लिकेशन प्रोजेक्ट्स का उपयोग करता हूं), लेकिन मुझे लगा कि मैं वहां कुछ चीजें फेंक दूंगा ताकि यह देख सके कि इससे मदद मिलेगी या नहीं।

क्या आपने विजुअल स्टूडियो का उपयोग करने के बजाय सीधे एमएसबिल्ड का उपयोग करके समाधान बनाने का प्रयास किया है? आदेश कुछ इस तरह दिखेगा:

%windir%\Microsoft.NET\Framework\<version>\MSBuild SolutionName.sln /t:Rebuild /p:configuration=debug 

मैंने देखा है कि आप दृश्य स्टूडियो के लिए आदेश पंक्ति स्विच गुजर नहीं कर रहे थे निर्माण के बाद बंद करने के लिए पूरा/RunExit MSDN Link है तो यह हो सकता है कि विजुअल स्टूडियो IDE खोल रहा है प्रत्येक निर्माण के लिए अपने निर्माण सर्वर पर और बंद नहीं? मैं आईडीई के कई उदाहरण देख सकता हूं जिसमें समस्याएं उत्पन्न होने के समान समाधान होते हैं।

मैं आपको सलाह दूंगा कि यदि आप आईडीई के भीतर किसी चीज़ पर निर्भरता रखते हैं तो विजुअल स्टूडियो के बजाय एमएसबिल्ड का उपयोग करके अपने निर्माण को निष्पादित करना संभव है। आपको, कम से कम, तेजी से निर्माण के समय प्राप्त करना चाहिए क्योंकि आपको विजुअल स्टूडियो को लोड नहीं करना होगा और यह आपकी निर्माण प्रक्रिया में जटिलता की एक परत को हटा देगा।

इस सहायता की आशा करें!

+0

एमएसबिल्ड के संबंध में, "संपादित करें 1" देखें जिसे मैंने अपने प्रश्न में जोड़ा था। जबकि मेरा पसंदीदा विकल्प नहीं है, मैं कोशिश करूँगा। मैं कोशिश/रन भी करूँगा, हालांकि हम सर्वर पर चारों ओर चिपके हुए डेवेनव उदाहरणों का पालन नहीं करते हैं। इसके अलावा एक स्पष्टीकरण - भले ही वे एक ही भंडार से * हैं, दोनों समाधान पूर्ण क्लोन हैं इसलिए दो समवर्ती डेवनव उदाहरणों के बीच किसी भी प्रकार की कोई साझा नहीं हो रही है। MSBuild पर लॉगिंग स्तर के संबंध में –

+0

, आप इसे/वर्बोजिटी फ्लैग [एमएसडीएन लिंक] (http://msdn.microsoft.com/en-us/library/ms164311.aspx) का उपयोग करके बदल सकते हैं –

+0

** यह विकल्प विजुअल स्टूडियो 7.0-9.0 (2003-2008) और सी ++ परियोजनाओं के लिए उपलब्ध नहीं है! ** (वीएस 10.0 परिवर्तित सी ++ परियोजनाओं को एमएसबिल्ड में परिवर्तित किया गया है, इसलिए यह संभव है)। –

2

एक ही चेकइन के परिणामस्वरूप चलने वाला एक और समवर्ती निर्माण लगता है जैसे वे संबंधित हैं। मेरे निर्माण के बीच में एक संसाधन दूर जा रहा है जबकि एक संबंधित निर्माण रन मुझे संबंधित निर्माण के बारे में संदेह करता है।

मुझे पता है कि आपने कहा है कि आप उन्हें एक ही समय में चला सकते हैं और सब ठीक है। हालांकि यह मुझे दौड़ की स्थिति की तरह गंध करता है। छोटी परियोजनाओं पर स्वचालित ट्रिगर को अक्षम करने और अंतिम सैनिटी चेक के रूप में कार्य करने का प्रयास करने के लिए यह सुनिश्चित करने के लिए कि यह आपको गड़बड़ नहीं कर रहा है।

मुझे कल्पना है कि अगर आपको यह बिल्कुल संदेह नहीं था, तो आपने इसे अपनी पोस्ट में उल्लेख नहीं किया होगा। बाहर नियम।

6

मुझे सी ++ में हडसन/जेनकींस पर निर्माण करने में कोई समस्या थी, जो संभवतः संबंधित है, यदि आपके पास दो बार एक बार चल रहा है तो बुरी चीजें हो सकती हैं।

ऐसा इसलिए है क्योंकि हडसन/जेनकींस एक निर्माण के पेड़ हत्यारे को एक निर्माण के अंत में प्रक्रियाओं को साफ करने के लिए चलाएंगे, और एमएसबिल्ड/विजुअलस्टूडियो बिल्ड के बीच कुछ सामान्य प्रक्रियाओं को साझा करेगा।

वास्तविक समस्या मैं सी ++ के साथ किया था एक और त्रुटि के रूप में स्वयं प्रकट बनाता है:

fatal error C1090: PDB API call failed, 
error code '23' : '( 

यहां मुद्दा उठाया गया था:

https://issues.jenkins-ci.org/browse/JENKINS-9104

प्रक्रिया पेड़ हत्यारा बंद करने से हल हो सकती है आपकी मुद्दा।