CI परिवेश सेट करते समय, हमारी बुलड परिभाषा में हमारे पास एक कार्य है "सोनारक्यूब विश्लेषण तैयार करें" और दूसरा कार्य जो समाधान का निर्माण करता है।

समाधान बनाने वाला कार्य डॉटनेट सीएलआई (डॉटनेट बिल्ड) पर आधारित है और इसे 3 पैरामीटर प्राप्त होते हैं: कॉन्फ़िगरेशन (रिलीज़), एसएलएन फ़ाइल और आउटपुट (आउटपुट फ़ोल्डर जहां बायनेरिज़ सहेजे जाएंगे) ) समाधान में 2 प्रोजेक्ट शामिल हैं: एक .net मानक क्लास लाइब्रेरी और एक .net फ्रेमवर्क 4.6.2 क्लास लाइब्रेरी।

सीआई का परीक्षण करने के लिए, मैंने एक शाखा बनाई है और .net फ्रेमवर्क प्रोजेक्ट से सीएलएस अनुपालन विशेषता को हटा दिया है, उम्मीद है कि मैं निर्माण को विफल कर दूंगा (मैं सभी चेतावनियों को त्रुटियों के रूप में मान रहा हूं, मेरी नियम सेट फ़ाइल में शामिल है परियोजना और इसमें अन्य नियमों के साथ, नियम CA1014, CLS अनुपालन के बारे में) शामिल हैं।

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

क्या आप में से कोई इस मुद्दे को ठीक करने के बारे में जानता है?

साथ ही, यदि यह पूछने के लिए यह उचित साइट नहीं है, तो कृपया मुझे सुझाव दें और मैं इस प्रश्न को आगे बढ़ाऊंगा।

0
Buda Gavril 14 मई 2018, 16:55

2 जवाब

सबसे बढ़िया उत्तर

मैंने इस दस्तावेज़ीकरण से पढ़ा और यह बताता है वह:

"प्रारंभ" चरण आपके निर्माण को इस तरह संशोधित करेगा:

  • आपकी परियोजनाओं द्वारा संदर्भित सभी मौजूदा कोड विश्लेषक अक्षम कर दिए जाएंगे और केवल सोनारक्यूब प्लगइन्स के विश्लेषक ही होंगे निष्पादित
  • सोनारक्यूब गुणवत्ता प्रोफ़ाइल से मेल खाने के लिए सक्रिय कोडएनालिसिस नियमसेट अपडेट किया जाएगा
  • चेतावनियाँAsत्रुटियाँ बंद कर दी जाएँगी

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

तो यही कारण है कि निर्माण के दौरान इस कार्य को सक्षम करने के दौरान, मेरे कुछ नियमों की अनदेखी की जाती है।

0
Buda Gavril 17 मई 2018, 13:33

केस के कारण की जाँच करें सोनारक्यूब एनालिसिस का उपयोग करके चेतावनियों को त्रुटियों के रूप में देखें:

व्यावहारिक रूप से, सोनारक्यूब का उपयोग करने का कोई मतलब नहीं है TreatWarningsAsErrors=true के साथ स्कैनर, क्योंकि जब बिल्ड विराम, हमारे विश्लेषकों से कोई निर्माण परिणाम नहीं होगा, अंत कदम निष्पादित नहीं किया जाएगा और सोनारक्यूब पर कोई समस्या नहीं डाली जाएगी। यदि आपके निर्माण से कोई समस्या नहीं है, तो उपयोग करने का कोई कारण नहीं है सोनारक्यूब। इसके अलावा, TreatWarningsAsErrors=true के साथ आप होंगे सब कुछ पहले से ठीक करने के लिए मजबूर, या असफल निर्माण के साथ जीने के लिए लंबे समय तक, जिसकी मैं सलाह नहीं दूंगा।

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

यदि संकलक चेतावनियों के कारण आपके निर्माण विफल होने की आवश्यकता है (ध्यान दें कि सोनारक्यूब मानक कंपाइलर चेतावनियां एकत्र नहीं करता है, केवल रोसलिन विश्लेषक के परिणाम), मैं विश्लेषण के लिए एक अलग निर्माण कार्य बनाने की अनुशंसा करता हूं। इस तरह आपके पास दोनों दुनिया के सर्वश्रेष्ठ होंगे - सोनारक्यूब में ट्रैकिंग जारी करना और कंपाइलर चेतावनियों के कारण असफल निर्माण।

0
Cece Dong - MSFT 15 मई 2018, 12:29