2011-03-15 13 views
8

मैंने बैच फ़ाइल लिखी है, जिसे निष्पादित करते समय एक दृश्य स्टूडियो समाधान बनाता है। समाधान में कुछ सी # परियोजनाएं शामिल हैं। मैं इसके लिए एमएसबिल्ड उपयोगिता का उपयोग कर रहा हूं। किसी भी परियोजना में संकलन त्रुटियों के दौरान मैं आगे बढ़ने से निर्माण को कैसे रोक सकता हूं? आगे मैं त्रुटि संदेशों को कैसे प्राप्त कर सकता हूं और उन्हें कमांड प्रॉम्प्ट पर प्रदर्शित कर सकता हूं?संकलन त्रुटियों पर तुरंत MSBuild प्रसंस्करण रोकें

+0

डुपे: http://stackoverflow.com/questions/3297194/stop-msbuild-process-if-a-target-fails –

+1

@RitchMelton एक डुप्ली नहीं है क्योंकि यह समाधान के लिए पहली विफलता पर रोक लगाने के बारे में है। –

उत्तर

5

जब एक दृश्य स्टूडियो समाधान का निर्माण वहाँ पहले विफलता पर रोक के लिए कोई समर्थन नहीं है।

आप निम्नलिखित कदम उठाकर इस समाधान कर सकते हैं:

  1. 1 (set msbuildemitsolution=1) के लिए वातावरण चर msbuildemitsolution सेट;
  2. लक्ष्य वीएस समाधान से * .proj फ़ाइल उत्पन्न करने के लिए एमएसबिल्ड को आमंत्रित करें;
  3. जेनरेट * .sln.proj फ़ाइल में RunEachTargetSeparately="true" को RunEachTargetSeparately="false" नामक लक्ष्य में बदलें;
  4. अद्यतन * .sln.proj फ़ाइल बनाने के लिए MSBuild को आमंत्रित करें।

यह उत्तर Dan Moseley answer to a post on MSDN Forums पर आधारित है।

+0

मैंने .NET 4.0 में msbuild के साथ प्रयास किया है। काम नहीं, नहीं .proj फ़ाइल बनाई गई है, मैंने प्रसंस्करण द्वारा msbuild एविविटी की निगरानी की और डिस्क फ़ाइल की जांच भी की। – zhaorufei

+0

यह अभी भी .NET 4.0 में समर्थित है; सुनिश्चित करें कि आपके पास सिस्टम सेटिंग्स के माध्यम से पर्यावरण चर सेट करते समय कमांड प्रॉम्प्ट विंडो नहीं है, अगर यह मामला एक नया कमांड प्रॉम्प्ट विंडो खोलता है। –

4

यदि आप अपनी बैच फ़ाइल के प्रासंगिक हिस्सों को पोस्ट करते हैं तो आपको जवाब देना आसान होगा। फिर भी, सवाल के अपने दूसरे भाग के लिए, यहां एक उदाहरण है कि कैसे मैं हमारे निर्माण लिपियों में से एक में लगभग एक ही समस्या हल हो जाती है:

msbuild.exe /m /p:Configuration=Release /v:n theSolutionFile.sln >Build.log 
if ERRORLEVEL 1 goto :showerror 
find "0 Warn" Build.log >nul: 
if ERRORLEVEL 1 goto :showerror 

goto :EOF 

:showerror 
echo Build error occurred 
exit %ERRORLEVEL% 
संबंधित मुद्दे