2017-06-15 8 views
6

मेरे पास एक TFS बिल्ड में पावरहेल चरण है जो त्रुटि स्ट्रीम में त्रुटि लिखता है और इस प्रकार निर्माण में विफल रहता है। मैं त्रुटि को अनदेखा करने और सफल होने पर जारी रखना चाहता हूं।त्रुटि स्ट्रीम में त्रुटि कब लिखा जाता है जब मैं TFShell चरण को विफल करने से TFS को कैसे रोक सकता हूं?

Process completed with exit code 0 and had 1 error(s) written to the error stream. 

मैं TFS में Continue on error विकल्प सेट करने की कोशिश की है, लेकिन यह एक "आंशिक रूप से निर्माण सफल रहा" स्थिति में परिणाम है, लेकिन क्या मैं चाहता हूँ यह "सफल" होने के लिए है।

मैंने त्रुटि उत्पन्न करने वाली रेखा के अंत में 2>&1 > output.txt जोड़ने का भी प्रयास किया है, लेकिन त्रुटियां अभी भी TFS आउटपुट पर लिखी गई हैं और टेक्स्ट फ़ाइल में कैप्चर नहीं की गई हैं।

मैं जिस आदेश को निष्पादित कर रहा हूं वह TFS 2015 पावर टूल्स से New-TfsChangeset cmdlet है।

+1

हाय, मैं आपके समाधान का उपयोग नहीं कर सका और न ही यह सत्यापित करता हूं कि यह काम करता है क्योंकि हम अभी टीएफएस 2015 पर हैं। हालांकि मैंने इसे ऊपर उठाया। इसके आसपास काम करने के लिए, मैंने चेक-इन नीतियों को अक्षम कर दिया है जो 'न्यू-टीएफएस चेंजसेट' कमांड के साथ चेक-इन पर त्रुटि दे रहे थे। टीएफएस 2015 पावरटॉल्स में चेक-इन नीतियों के आसपास इसमें दोष है। – GiddyUpHorsey

उत्तर

4

आप अपनी पावरहेल स्क्रिप्ट कॉन्फ़िगरेशन में मानक त्रुटि पर विफलता को अनचेक कर सकते हैं और कार्य को पास करने के लिए अंतिम एक्सकोडोड लिख सकते हैं।

enter image description here

विफल स्टैंडर्ड त्रुटि

अगर यह सही है, यह कार्य करता है, तो किसी भी त्रुटि त्रुटि पाइप लाइन के लिए लिखा जाता असफल हो जायेगी, या किसी भी डेटा स्टैंडर्ड को लिखा है, तो पर त्रुटि स्ट्रीम। अन्यथा कार्य विफलता निर्धारित करने के लिए पूरी तरह से $ LASTEXITCODE और निकास कोड पर निर्भर करेगा।

फिर आप PowerShell या vsts कार्य आदेशों का उपयोग करके त्रुटि या waring आउटपुट कर सकते हैं।

Write-Warning “warning” 
Write-Error “error” 
Write-Host " ##vso[task.logissue type=warning;]this is the waring" 
Write-Host " ##vso[task.logissue type=error;sourcepath=consoleapp/main.cs;linenumber=1;columnnumber=1;code=100;]this is an error " 

के बारे में VSTS कार्य आदेश में अधिक जानकारी के लिए, आप का उल्लेख कर सकते हैं: Logging Commands

+0

क्या यह एक पावरहेल कदम बनाता है? मुझे लगता है कि वह विकल्प नहीं है। हम टीएफएस 2015 का उपयोग कर रहे हैं। – GiddyUpHorsey

+0

@GiddyUpHorsey यह विकल्प TFS2017 Update2RC या VSTS के साथ उपलब्ध है। TFS2015 पर, मुझे डर है कि बिल्ड-इन पावरहेल चरण के लिए मानक त्रुटि स्ट्रीम में कोई डेटा लिखा गया है, तो यह इसे बाईपास करने में सक्षम नहीं है। आपको * त्रुटि पर जारी रखें * विकल्प का उपयोग करना पड़ सकता है। –

+0

यह दुर्भाग्यपूर्ण है। इस स्थिति में 'त्रुटि पर जारी रखें' सहायक नहीं है। टीएफएस 2015 पावरटॉल्स त्रुटि स्ट्रीम को पुनर्निर्देशित करने के साथ ठीक से काम नहीं कर रहा है। – GiddyUpHorsey

0

निम्न स्क्रिप्ट VSTS में मेरे लिए काम किया

Write-Host "Running build script..." 
&$CAKE_EXE $cakeArguments **2>&1 | Write-Host** 

बस आदेश को "2>&1 | Write-Host" जोड़ा ताकि stderr स्ट्रीमपर भेजा जाएगा लिखें-होस्ट स्ट्रीम

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