2012-03-27 12 views
6

के कारण निर्माण विफलताओं को अंतःस्थापित करते हैं हम टीएफएस 2010 निरंतर एकीकरण स्वचालित निर्माण का उपयोग करते हैं जो प्रत्येक चेक-इन पर लात मारता है। मैंने हाल ही में एक ही एजेंट पर अनुक्रमिक रूप से विरोध के रूप में विभिन्न बिल्ड एजेंटों पर समानांतर में डीबग और रिलीज बनाने के लिए प्रक्रिया टेम्पलेट को बदल दिया है।समानांतर में विभिन्न स्वाद बनाने के लिए स्विच करने के बाद, हम CreateLabel विफलता

तब से, हम निम्नलिखित त्रुटि के कारण निर्माण विफलता को देख रहे हैं। यह अक्सर इतना होता है कि यह अस्वीकार्य है (प्रत्येक 5 वीं -10 वीं बिल्ड या तो)।

"TF203059: लेबल पहले से मौजूद एक अलग लेबल नाम के साथ आदेश पुन: प्रयास करें।"

मैं एक विशिष्ट पैटर्न ऐसा करने का कारण बनता है कि यह पता लगाने के लिए सक्षम नहीं किया गया। क्या किसी ने पहले इसका सामना किया है? क्या कोई बदलाव है जो बिल्ड प्रक्रिया में निर्माण लेबल गतिविधि में किया जाना चाहिए?

+0

यह इस बात पर निर्भर करता है कि आपने अपनी बिल्ड प्रक्रिया टेम्पलेट को कैसे अनुकूलित किया है। क्या आप थोड़ा सा वर्णन कर सकते हैं कि आपने इसे कैसे सेट किया है? – pantelif

+0

हाय पेंटेलिफ़, आपकी प्रतिक्रिया के लिए धन्यवाद। मैंने यहां एक उदाहरण के रूप में साझा किए गए निर्माण प्रक्रिया टेम्पलेट का उपयोग किया: http://blogs.msdn.com/b/jimlamb/archive/2010/09/14/parallelized-builds-with-tfs2010.aspx – LiliaP

+0

कुछ और विवरण: मैंने जोड़ा बिल्ड प्रक्रिया अनुक्रम में एक समानांतर फॉरएच नियंत्रण प्रवाह और इसके अंदर पूरे RunOnAgent ब्लॉक को रखा गया है। CreateLabel गतिविधि RunOnAgent ब्लॉक का हिस्सा था, इसलिए अब यह प्रत्येक बिल्ड स्वाद के लिए निष्पादित हो जाती है। लेबल संख्या बनाने के लिए सेट हो जाता है जो प्रारूप $ (दिनांक: yyyy.MM.dd) $ (Rev: .rr) में है। नतीजतन डीबग और रिलीज दोनों एक ही लेबल का उपयोग करेंगे। यह ज्यादातर बार मुद्दों का कारण नहीं बनता है, लेकिन हम अंतःस्थापित निर्माण विफलताओं को प्राप्त करते हैं – LiliaP

उत्तर

1

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

+0

रॉब - आपकी प्रतिक्रिया के लिए बहुत बहुत धन्यवाद! मैं देश से बाहर हूं और अभी इस परियोजना पर वापस आ रहा हूं।हमारा समाधान इतना बड़ा नहीं है, इसलिए नवीनतम होने में वह लंबा समय नहीं लगेगा। – LiliaP

+0

रॉब - इस समस्या के आपके समाधान के बारे में एक प्रश्न: आपने लेबलिंग को एकल थ्रेडेड भाग में कैसे स्थानांतरित किया? क्या आपने विजुअल स्टूडियो बिल्ड प्रोसेस एडिटिंग यूआई में टेम्पलेट को संपादित करके इसे पूरा किया है या क्या आपको कस्टम समाधान लागू करना है? – LiliaP

+0

यह थोड़ी देर हो गया है, लेकिन मुझे लगता है कि मैंने वर्कफ़्लो को संपादित करके इसे एकल थ्रेडेड हिस्से में वापस ले जाया है –

0

कॉन्फ़िगरेशन "डीबग" और "रिलीज" के समानांतर निर्माण के मामले में। यह एक ही लेबल को दो बार रखने की कोशिश करता है, इसलिए समस्याएं पैदा हो सकती हैं। विशेष रूप से हमें केवल एक बार लेबल प्रदान करने की आवश्यकता है। तो, इस मामले में इस तरह के मुद्दे से बचने के लिए हम लेबल को रखने और दूसरी कॉन्फ़िगरेशन के लिए लेबल देने के लिए कॉन्फ़िगरेशन के लिए एक शर्त डाल सकते हैं।

उपयोग इस अगर हालत:

अगर (विन्यास = "रिलीज़") फिर (CreateLabel) और [आप के रूप में हम पहले से ही "के लिए एक बार उस लेबल प्रदान की है डिबग के लिए इस खाली छोड़ना रिलीज "हालत]

इस तरह से मैंने डुप्लिकेट लेबल समस्या से संबंधित अपनी समस्या हल कर दी है।

"TF203059: लेबल पहले से मौजूद एक अलग लेबल नाम के साथ आदेश पुन: प्रयास करें।"

मुझे आशा है कि यह भी बिल्कुल ठीक समानांतर बनाता है के लिए आप के लिए काम करेंगे।