2016-02-11 4 views
15

हमने अभी-अभी टीएफएस 2015 (अपडेट 1) ऑन-प्रिमाइज़ स्थापित किया है और नए टीएफएस बिल्ड सिस्टम का उपयोग करके निरंतर एकीकरण/बिल्ड सिस्टम बनाने की कोशिश कर रहे हैं। निर्माण ठीक काम करता है, और मुझे एक हरा प्रकाश देता है, लेकिन जब मैं डिफ़ॉल्ट निर्माण को देखता हूं तो उसने केवल बिन निर्देशिका से बाइनरी बनाई है, और स्थानीय सर्वर पर ऐप ऑन-प्रिमाइज़ को तैनात करने का कोई आसान तरीका नहीं लगता है ।टीएफएस 2015 के साथ एक वेब एप्लिकेशन बनाएं और तैनात करें

फाइल सिस्टम कॉपी और एक पावरहेल स्क्रिप्ट के लिए दो तैनाती विकल्प हैं, और यह निश्चित रूप से फ़ाइलों का प्रतिलिपि बनाने के लिए उन्हें एक नए सर्वर पर कॉपी करने के लिए पर्याप्त आसान होगा, लेकिन निर्माण के बाद से केवल बाइनरी निर्मित नहीं हुई हैं, इसलिए मैं नहीं इस के लिए वेब कलाकृतियों (सीएसटीएमएल, छवियों, स्क्रिप्ट, सीएसएस, आदि ..) को इकट्ठा करने के लिए एक उपकरण देखें।

एक संपूर्ण गूगल खोज के बाद, मैं केवल एक लेख है, जिस पर इस बारे में बात करती पाया है:

http://www.deliveron.com/blog/building-websites-team-foundation-build-2015/

हालांकि, इस WebDeploy उपयोग करता है और एक नहीं बल्कि गन्दा तैनाती पैकेज बनाता है।

मैं साइट को कैसे तैनात कर सकता हूं (मानक एमवीसी वेब एप्लिकेशन, वास्तव में मेरे परीक्षण प्रोजेक्ट विज़ार्ड द्वारा बनाई गई डिफ़ॉल्ट बॉयलरप्लेट साइट का उपयोग कर रहे हैं) स्थानीय सर्वर पर कलाकृतियों को सबसे आसान तरीके से पूरा कर सकते हैं? मैं सर्वर पर WebDeploy स्थापित नहीं करना चाहता, और अंतिम कलाकृतियों को तैनात करने के लिए PowerShell या कुछ का उपयोग करना चाहूंगा।

बिल्ड 4 मानक (बिल्ड, टेस्ट, इंडेक्स & प्रकाशित करें, प्रकाशित कलाकृतियों प्रकाशित करें) के साथ मानक मानक स्टूडियो बिल्ड टेम्पलेट है।

+0

यह आपके लिए कैसे चला गया? मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि निम्न परीक्षण चरण विफल होने पर तैनाती नहीं होती है। क्या आप ऐसा करने में सक्षम थे? –

+1

@ one.beat.consumer - आपको दो अलग-अलग चरणों के रूप में तैनाती से अपने संकलन/परीक्षण को विभाजित करना चाहिए, फिर आप उसी कोड को अपने परीक्षण/qa/prod वातावरण में तैनात कर सकते हैं। –

+0

धन्यवाद। जैसा कि आपने उल्लेख किया है "रिलीज" सुविधा पैकेज को तैनात कर रही है। मुझे जो समस्या हो रही थी, वह बिल्ड चरण से परीक्षणों को निष्पादित करने से अलग था, क्योंकि XUnit के लिए मिले एकमात्र उदाहरण निर्माण के लिए अनुकूलन थे। मैंने तब से xunit.runner.visualstudio NuGet पैकेज पाया है जो मुझे एक टेस्ट चरण को उचित रूप से अनुकूलित करने की अनुमति देता है। हालांकि, अब दो बिल्ड लेते हैं - परीक्षण के लिए प्रीपिंग बनाने वाला पहला, और परीक्षण पास होने पर एक तैनाती पैकेज बनाने के लिए दूसरा। –

उत्तर

15

हम "दृश्य स्टूडियो का निर्माण" कदम और MSBuild के लिए तर्क के रूप में हम लाइन निम्नलिखित का उपयोग करें का उपयोग करें। यह प्रकाशित प्रोफाइल का नाम होना चाहिए (pubxml फ़ाइल का फ़ाइल नाम)। अगर फ़ाइल नाम Build.pubxml है तो प्रकाशित प्रोफाइल बिल्ड है।

उदाहरण के लिए

:

/p:DeployOnBuild=True /p:PublishProfile=Build 
+3

@ सबास्टियन - धन्यवाद। मेरा प्रश्न यह है कि यदि निम्न विजुअल स्टूडियो टेस्ट बिल्ड चरण में चीजें विफल हो जाती हैं तो यह परिनियोजन कैसे रोका जा सकता है? –

-5

हम 40+ अनुप्रयोगों के लिए वेब डिप्लॉय/एमएसडी नियोजन का उपयोग करते हैं और इसे प्यार करते हैं। हम अपने सभी सर्वरों पर वेब डिप्लॉय इंस्टॉल करते हैं ताकि हम अधिक आसानी से तैनात कर सकें लेकिन आप Web Deploy On Demand सुविधा का भी उपयोग कर सकते हैं जिसके लिए वेब डिप्लॉय को पूर्व-स्थापित करने की आवश्यकता नहीं है।

/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration) 

चर पर टैब पृष्ठ DeploymentConfiguration विन्यस्त किया जा करने के लिए किया गया है:

1

I wanted to add that Ben Day has an excellent write-up that helped us package quickly and then release to multiple environments through Release Manager

उनकी MSBuild तर्क इस तरह दिखेगा:

/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website 

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

हम वेब -env.config फ़ाइलों को फॉर-डिप्लॉय फ़ोल्डर के साथ कैप्चर करते हैं और फिर रिलीज प्रक्रिया में एक्सडीटी ट्रांसफॉर्म का उपयोग करते हैं ताकि यह सुनिश्चित किया जा सके कि जो भी पर्यावरण हम तैनात कर रहे हैं, उसके लिए सब कुछ अपडेट हो जाए। यह हमारी सभी वेब परियोजनाओं के लिए अच्छा काम करता है।

+1

प्रकाशित निर्देशिका को प्रकाशित प्रोफ़ाइल में सेट किया जा सकता है, इसे कमांड लाइन पर निर्दिष्ट करने की आवश्यकता नहीं है। इस प्रकार, इसे अधिक आसानी से –

+0

संस्करणित किया जा सकता है यह एक अच्छा बिंदु है। हमारे पर्यावरण के लिए (शायद हम यहां असामान्य हैं?) हमने साइट को कैप्चर आर्टिफैक्ट के रूप में कैप्चर करने के लिए किसी भी प्रकाशित प्रोफ़ाइल को ओवरराइड करने के लिए चुना है और फिर टीएफएस रिलीज मैनेजर के माध्यम से कई लक्ष्यों को तैनात किया है। –

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