2010-08-25 9 views
35

हम .NET 4 पर माइग्रेट कर रहे हैं और अनुबंध क्षमताओं द्वारा नए डिज़ाइन को लागू करने में बहुत रुचि रखते हैं।माइक्रोसॉफ्ट कोड अनुबंध और सीआई बिल्ड सर्वर

जैसा कि हम जानते Code Contract इंजन Code Contract addin alt text
और वी.एस. परम या प्रीमियम (स्थिर जांच के लिए) की स्थापना की आवश्यकता।

  1. मैं सीआई निर्माण सर्वर (TeamCity) पर वी.एस. की स्थापना के बिना पुनर्लेखन कोड अनुबंध का उपयोग कर सकते:

    यहाँ मेरे सवालों का है?

  2. क्या कोई एमएसबिल्ड कार्य अनुबंध जांच निष्पादित करने के लिए है?
  3. क्या आप सीआई बिल्ड के साथ कोड अनुबंध की सत्यापन का उपयोग करते हैं?
+3

मुझे कम से कम रात के निर्माण के लिए कोड अनुबंध स्थिर विश्लेषण प्राप्त करना अच्छा लगेगा, इसलिए मुझे यह जानने में दिलचस्पी होगी कि लोगों को क्या कहना है। यदि सर्वर-साइड स्थैतिक विश्लेषण सेवा भी होती है तो यह बहुत अच्छा होगा ताकि आप एक बहुत तेज़ सर्वर स्थापित कर सकें और इसे धीरे-धीरे विकास मशीन पर बंद करने के बजाय स्थिर विश्लेषण की मेजबानी कर सकें। शायद एक स्थिर विश्लेषण क्लाउड सेवा भी? –

+0

@Dan मैंने कोड अनुबंध के स्थिर विश्लेषण के साथ थोड़ा सा खेला और यह बहुत अच्छा है। अब टीमसिटी बिल्ड स्थापित करने की कोशिश कर रहा है ... यहां एमएसबिल्ड एकीकरण जानकारी है (पेज 41) http://research.microsoft.com/en-us/projects/contracts/userdoc.pdf –

+0

मुझे एक स्थिर विश्लेषण क्लाउड का विचार पसंद है सर्विस। हरमम्म ... शायद मुझे इसे बनाने की कोशिश करनी चाहिए। –

उत्तर

46

मैं सीआई निर्माण सर्वर (TeamCity) पर वी.एस. की स्थापना के बिना पुनर्लेखन कोड अनुबंध का उपयोग कर सकते हैं?

हां। बिल्ड सर्वर पर CodeContracts स्थापित करें। (यदि यह विजुअल स्टूडियो के बिना मशीन पर स्थापित करने से इंकार कर देता है, तो बस नीचे सूचीबद्ध फाइलों और उनकी निर्भरताओं को बिल्ड सर्वर पर कॉपी करें।) एक बार इंस्टॉल हो जाने पर, आपको% प्रोग्रामफाइल% \ Microsoft \ Contracts में कोडकंट्रैक्ट टूल इंस्टॉल हो जाएंगे \ बिन। - द्विआधारी rewriter

  1. ccrewrite.exe: कि निर्देशिका में, वहाँ 4 निष्पादनयोग्य आप में रुचि हो जाएगा रहे हैं। संकलन के बाद इसे निष्पादित किया जाना चाहिए। यह आपके अनुबंधों को रनटाइम चेक में बदल देता है या जो भी आप निर्दिष्ट करते हैं, वे उन्हें बदलना चाहते हैं।

  2. ccrefgen.exe - यह आपके असेंबली के साथ अनुबंध संदर्भ असेंबली उत्पन्न कर सकता है। यह उपयोगी है अगर आप अन्य पार्टियों द्वारा उपभोग करने वाले डीएलएस शिपिंग कर रहे हैं।

  3. cccheck.exe - स्थिर जांचकर्ता। बिल्ड सर्वर पर, आप इस उपकरण को अनुबंधों वाले अपने असेंबली पर चलाएंगे, और यह चेतावनियों और संदेशों को थूक देगा क्योंकि यह संभावित समस्याओं का सामना कर रहा है।

  4. ccdocgen.exe - यह आपके कोड में अनुबंधों से एक्सएमएल दस्तावेज उत्पन्न करता है। यदि आप अन्य पार्टियों द्वारा खपत के अनुबंध के साथ डीएलएस शिपिंग कर रहे हैं, या यदि आपको बस अपने कोड पर आंतरिक दस्तावेज़ों की आवश्यकता है तो आप इसका उपयोग करना चाहेंगे।

अनुबंध जाँच निष्पादित करने के लिए किसी भी MSBuild कार्य वहाँ है?

हां। CodeContracts के साथ 2 MSBuild कार्य शिपिंग हैं: उसी कोडकंट्रैक्ट्स स्थापना निर्देशिका में, MSBuild \ [ढांचे संस्करण] फ़ोल्डर को देखें। उस निर्देशिका में, 2 फाइलें हैं जो आपकी मदद करनी चाहिए: Microsoft.CodeContracts.targets और Microsoft.CodeContractAnalysis.targets।

CodeContracts प्रलेखन के अनुसार

,

एक MSBuild स्क्रिप्ट विस्तार माइक्रोसॉफ्ट .Contract।लक्ष्य में अतिरिक्त रनटाइम अनुबंध उपकरण और स्थिर सत्यापन चरणों के लिए कार्य क्रियाएं शामिल हैं। इस दृष्टिकोण के परिणामस्वरूप, msbuild कमांड के साथ कमांड लाइन से बनाते समय उसी कार्यक्षमता का उपयोग करना संभव है। किसी प्रोजेक्ट या समाधान पर msbuild का उपयोग करना जो VS उपयोगकर्ता इंटरफ़ेस के माध्यम से सक्षम अनुबंधों का उपयोग करता है, वही क्रियाओं को VS के तहत संबंधित के समान कार्य करेगा।

जैसा कि आप देख सकते हैं, यह संभव है और एमएसबिल्ड लक्ष्यों के माध्यम से सीआई निर्माण में उपकरण को एकीकृत करने के लिए समर्थित है।

क्या आप सीआई बिल्ड के साथ कोड अनुबंध की सत्यापन का उपयोग करते हैं?

आप यह मानते हुए चेतावनी/संदेश के साथ स्थिर जाँच मतलब है, मैं व्यक्तिगत रूप से यह किया है, लेकिन यह एक बड़ा परियोजना पर नहीं किया है।

मुझे आशा है कि इससे मदद मिलती है!

कमांड लाइन टूल्स के स्पष्टीकरण के लिए जॉन स्कीट की C# In Depth पुस्तक पर हैट टिप।

+0

बहुत बहुत धन्यवाद। अब हम इसे टीमसिटी में स्थापित करने की कोशिश कर रहे हैं। –

+1

कूल। कृपया मुझे परिणाम बताएं! –

+1

नोट: कोड अनुबंध अब सी # में गहराई में शामिल नहीं हैं (तीसरे संस्करण के रूप में) –

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