ठीक है, इसलिए मैं आसानी से स्वीकार करता हूं कि जब मैं निरंतर एकीकरण की बात करता हूं तो मैं नौसिखिया हूं।एमएसबिल्ड - .csproj फ़ाइल का उपयोग करें या अपना खुद का रोल करें?
कहा जा रहा है कि, मैं खुद को शिक्षित करने के लिए एक सीसी.NET पर्यावरण स्थापित करने की कोशिश कर रहा हूं, लेकिन मुझे स्वचालित बिल्ड हिस्से को स्थापित करने के लिए आवश्यक जानकारी ढूंढने में मुझे परेशानी हो रही है।
जैसा कि मैं इसे समझता हूं, वी # 2005 द्वारा उत्पादित सी # द .csproj फ़ाइल में और एक मान्य MSBuild फ़ाइल है। बुद्धि के लिए, मैं .csproj फ़ाइल का उपयोग कर CC.NET में MSBuild कार्य एकीकृत करने में सक्षम किया गया है, लेकिन मैं इस के साथ कुछ मुद्दे हैं:
- वहाँ एक बहुत है कि मैं नहीं कर रहा हूँ यहाँ में चल रहा है यकीन है कि मुझे वास्तव में एक स्वचालित निर्माण वातावरण में आवश्यकता है।
- मैंने यह फ़ाइल नहीं बनाई है। मैं इसे समझ नहीं पा रहा हूं, और वह मुझे डराता है। (Programming By Coincidence)
- क्या हो रहा है फ़ाइल को संशोधित करने MbUnit की तरह कुछ शामिल करने के लिए, 1, 2, और 3 के परिणामस्वरूप के माध्यम से
$(MSBuildToolsPath)\Microsoft.CSharp.targets
- निकाला जा रहा है में से अधिकांश लगता है घुमावदार और अधिक कठिन की तुलना में यह करने की जरूरत है । मेरा एकमात्र असली विकल्प इसे
AfterBuild
सेक्शन में शामिल करना है, जो मुझे एक हैक की तरह लगता है।
तो, सीसी.NET लोगों, एमएसबिल्ड लोगों और एमबीयूनिट लोगों के लिए कुछ प्रश्न।
- एमएसबिल्ड का उपयोग करते समय, क्या यह वीएस-जेनरेट की गई .csproj फ़ाइल को बिल्ड फ़ाइल के रूप में उपयोग करने की सलाह दी जाती है? या मुझे अपना खुद का बनाना चाहिए?
- क्या MbUnit परीक्षण MSBuild फ़ाइल या CC.NET फ़ाइल का हिस्सा होना चाहिए? मेरा शोध यह सुझाव देता है कि वे एमएसबील्ड फ़ाइल में हैं। यदि ऐसा है, तो क्या मैं एक नई MSBuild .proj फ़ाइल बना सकता हूं और उसे .csproj फ़ाइल के अतिरिक्त सीवीएस में जांच सकता हूं? या MbUnit कार्य मेरी .csproj फ़ाइल का हिस्सा बन गया है?
- प्रश्न के समान 2. यदि मैं एमएसबिल्ड फ़ाइल में एमबीयूनीट परीक्षण जोड़ता हूं और .csproj फ़ाइल का उपयोग करके समाप्त होता हूं, तो
Target Name="AfterBuild"
वास्तव में उस जानकारी को जोड़ने के लिए अनुभाग है?Target Name="Test"
अनुभाग नहीं होना चाहिए? बनाम वीएस का उपयोग करना .csproj फ़ाइल दूसरे विकल्प को रोकने के लिए प्रतीत होता है।
मुझे पता है कि वहां बहुत कुछ है, लेकिन जो कुछ मैं ऑनलाइन ढूंढने में सक्षम हूं, वह उन विषयों के साथ परिचितता का एक निश्चित स्तर मानता है जो मेरे पास नहीं है - जब तक कि मैं गलत नहीं हूं, इस सामान के लिए सीखने की वक्र बिल्कुल वक्र नहीं है, यह एक कदम समारोह है। :)
संपादित करें 1: मैंने टेक्स्ट को थोड़ा और संक्षेप में अद्यतन किया और जवाब के साथ मेरे कुछ प्रश्नों को हल करने के लिए अद्यतन किया।
क्या नई .proj फ़ाइल को .csproj फ़ाइलों के साथ सीवीएस में चेक किया जाता है? या यह केवल बिल्ड सर्वर पर और स्रोत नियंत्रण पर्यावरण के बाहर रहता है? मेरा झुकाव इसे जांचना होगा, लेकिन यदि सर्वोत्तम प्रथाएं हैं, तो मैं उनका पालन करना चाहूंगा। – jerhinesmith
** सब कुछ ** चेक इन हो जाता है। हम कई बिल्ड एजेंटों के साथ टीमसिटी बिल्ड सर्वर का उपयोग करते हैं। बिल्ड सर्वर केवल 2 (ठीक 2 से अधिक) चीजें जानता है। स्रोत कहां है (सीवीएस/एसवीएन/वीएसएस/आदि) और कौन सी फाइल बिल्ड करता है। (कम बटेरी को बचाने के लिए मिला) –
यह वह तरीका है जिसका मैं उपयोग करता हूं। प्रत्येक प्रोजेक्ट (वेबसाइट, वेब एप्लिकेशन, एप्लिकेशन, एक्सटेंशन इत्यादि) के लिए, मेरे पास सबवर्सन में स्वयं का भंडार है, यह स्वयं की .sln फ़ाइल है जिसमें एक या अधिक है। * Proj और one .proj फ़ाइल। एसएसएलएन फ़ाइल का उद्देश्य वीएस में पूरी चीज खोलने और कोड लिखने/डीबग करने की अनुमति देना है। .proj फ़ाइल क्रूज़ कंट्रोल या टीमसिटी को सतत एकीकरण करने की अनुमति देना है। –