2010-08-09 10 views
5

मैं एक एमएसबिल्ड परियोजना लिखने की कोशिश कर रहा हूं जो डॉक्सिजन का उपयोग करके एचटीएमएल दस्तावेज उत्पन्न करेगा। मुझे example को छोड़कर नेट पर इसके बारे में कुछ भी नहीं मिला, जो अपूर्ण लगता है; यह डॉक्सिजन चेतावनियों का विश्लेषण नहीं करता है।एमएसबिल्ड और इग्नोर मानक IrrorWarningFormat

मुझे पता चला कि MSBuild's Exec कार्य में इग्नोरस्टैंडर एररवार्निंगफॉर्मैट और कस्टमवार्निंग रेगुलरएक्सप्रेस जैसे पैरामीटर हैं। "मानक त्रुटि/चेतावनी प्रारूप" क्या है और इन गुणों में किस प्रकार की आरईएस की अनुमति है?

संपादित करें: आह, "अंदर इंजन माइक्रोसॉफ्ट बनाएँ" गलत तरीके से .NET 3.5, जहां यह 4. मेरे लिए कोई उपयोग से वास्तव में है में संपत्ति के रूप में वर्णन ...

उत्तर

11

मानक MSBuild त्रुटि/चेतावनी प्रारूप यहाँ वर्णित है: http://blogs.msdn.com/b/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx

संक्षेप में, प्रारूप है:

MSBuild त्रुटि संदेश और चेतावनी है कि विशेष रूप से कई कमांड लाइन उपकरण है कि आम तौर पर कंसोल को लिखने से प्रारूपित हो गया पहचानता है। उदाहरण के लिए, निम्न त्रुटि संदेशों पर नज़र डालें - वे सभी एमएसबिल्ड और विजुअल स्टूडियो के अनुकूल होने के लिए उचित रूप से स्वरूपित हैं।

Main.cs(17,20): warning CS0168: The variable 'foo' is declared but never used 
C:\dir1\foo.resx(2) : error BC30188: Declaration expected. 
cl : Command line warning D4024 : unrecognized source file type 'foo.cs', object file assumed 
error CS0006: Metadata file 'System.dll' could not be found. 

इन संदेशों को विशेष प्रारूप है कि नीचे दिखाया गया है की पुष्टि, और शामिल 5 भागों - इन भागों के आदेश महत्वपूर्ण हैं और परिवर्तन नहीं होना चाहिए:

Canonical Errors/Warnings

उत्पत्ति (आवश्यक)

उत्पत्ति खाली हो सकती है। यदि मौजूद है, तो उत्पत्ति आमतौर पर एक उपकरण नाम है, जैसे उदाहरणों में से एक में 'सीएल'। लेकिन यह एक फ़ाइल नाम भी हो सकता है, जैसे 'Main.cs' किसी अन्य उदाहरण में दिखाया गया है।

(line) or (line-line) or (line-col) or (line,col-col) or (line,col,line,col) 

उपश्रेणी (वैकल्पिक)

: यदि यह एक फ़ाइल का नाम है, तो यह एक निरपेक्ष या एक रिश्तेदार फ़ाइल नाम, निम्न तरीकों में से एक में एक वैकल्पिक parenthesized लाइन/स्तंभ जानकारी के बाद होना चाहिए

उपश्रेणी का उपयोग श्रेणी को आगे वर्गीकृत करने के लिए किया जाता है, और इसे स्थानीयकृत नहीं किया जाना चाहिए।

श्रेणी (आवश्यक)

श्रेणी या तो 'त्रुटि' या 'चेतावनी' होना चाहिए। मामला कोई फर्क नहीं पड़ता। मूल की तरह, श्रेणी को स्थानीयकृत नहीं किया जाना चाहिए।

कोड (आवश्यक)

कोड एक आवेदन विशिष्ट त्रुटि कोड/चेतावनी कोड को पहचानती है। कोड को स्थानीयकृत नहीं किया जाना चाहिए और इसमें रिक्त स्थान नहीं होना चाहिए।

पाठ (वैकल्पिक)

उपयोगकर्ता के अनुकूल पाठ कि त्रुटि बताते हैं, और यदि आप कई स्थानों को पूरा लोकलाइज़ होनी चाहिए।

2

मैं डॉक्स पर नहीं मिल सकता है अभी, लेकिन मुझे लगता है कि मानक त्रुटि प्रारूप

.*(\d+(,\d+(,\d+,\d+)?)?)?: error .*:.* 
.*(\d+(,\d+(,\d+,\d+)?)?)?: warning .*:.* 

उदाहरण की तरह कुछ है:

c:\somefile.txt(10,20,10,30): error CMD1234: blarg 
c:\somefile.txt(10,20): error CMD1234: yadda yadda 
c:\somefile.txt: warning ARG5678: blah blah 
+0

मुझे यह भी नहीं मिला। किसी को? – liori

2

प्रारूप एमएसबिल्ड स्रोत कोड here में पूरी तरह से प्रलेखित है।

+0

आह, खुले सोर्सिंग सॉफ्टवेयर के खतरे। धन्यवाद! – liori

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