2010-11-30 19 views
11

This has been asked, लेकिन उत्तर नहीं दिया गया था। उत्तर (/warn:1 का उपयोग करें) msbuild.exe, केवल csc.exe के लिए काम नहीं करता है। शायद मैं सीएससी और एमएसबिल्ड के बीच कुछ याद कर रहा हूँ?मैं कमांड लाइन पर msbuild से सभी कंपाइलर और कोड विश्लेषण चेतावनियों को कैसे दबा सकता हूं?

मैं सभी संकलक चेतावनी और कोड विश्लेषण चेतावनी को दबाने के लिए करना चाहते हैं (उदाहरण के लिए "चर 'variableNameHere' असाइन किया गया है लेकिन अपने मूल्य ..." या कोड विश्लेषण चेतावनी: CA1805: Microsoft.Performance: ..) जब मैं कमांड लाइन msbuild का उपयोग कर रहा हूँ। मैं समाधान फ़ाइल को बदलना नहीं चाहता हूं। मेरे द्वारा निर्मित किए जा रहे बहुत बड़े समाधान में कई सौ चेतावनी संदेश हैं - उन्हें ठीक करना मेरे प्रोजेक्ट के दायरे से बहुत दूर है।

मैंने /v:quiet की कोशिश की लेकिन यह काम नहीं किया।

क्या कमांड लाइन के माध्यम से ऐसा करने का कोई तरीका है?

अपडेट: इस:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Dev\ReallyBigSolution.sln /p:NoWarn=true /p:NoWarn=CA1031

बिल्कुल काम नहीं करता। मुझे अभी भी सैकड़ों चेतावनियां मिलती हैं, जिनमें से एक जिसे मैंने विशेष रूप से अवरुद्ध किया है (सीए 1031)।

/p:RunCodeAnalysis=Never या /p:RunCodeAnalysis=false का उपयोग स्पष्ट रूप से कोड विश्लेषण चेतावनियों या त्रुटियों को दबा नहीं देता है।

+0

मुझे आश्चर्य है कि एमएसबिल्ड के लिए कोई यूआई नहीं है? ऐसा लगता है कि यह वास्तव में एक का उपयोग कर सकता है। विभिन्न सेटिंग्स पर अनुमान समय की बर्बादी है। – jcollum

+0

आपको अनुमान लगाने की आवश्यकता नहीं है। वीएस का प्रयोग करें, प्रोजेक्ट गुणों को संशोधित करें (टैब या कोड विश्लेषण टैब बनाएं), और फिर देखें कि .csproj फ़ाइल में कौन से परिवर्तन जारी हैं। Msbuild का पूरा बिंदु कमांड लाइन उपकरण होना है। – Brian

+0

@ ब्रायन: मैंने csproj प्रॉपर्टी पेजों को देखा है और इन कोड विश्लेषण चेतावनियों के बारे में कुछ भी नहीं देखा है। मुझे लगता है कि मैं हार मानने जा रहा हूँ। इस पर बहुत अधिक समय बर्बाद करना। मैंने सोचा कि यह आसान होगा, बस कुछ कमांड लाइन मैं लापता था। – jcollum

उत्तर

11

संकलक, जो .csproj फ़ाइल में <NoWarn> संपत्ति से मेल खाती है पर nowarn ध्वज का उपयोग कर सकते। तो शायद msbuild /p:NoWarn="37;68" उन चेतावनी संख्याओं को बंद कर देगा (कोशिश नहीं की है)।

या

http://msdn.microsoft.com/en-us/library/13b90fz7.aspx

चेतावनियों को बंद करने के लिए पूरी तरह से उपयोग करें। मुझे संपत्ति का नाम ऑफहैंड नहीं पता है, /p:Warn=0 आज़माएं।

संपादित करें: अंत में टिप्पणियां पढ़ें; ऐसा लगता है कि वास्तव में इन सभी चेतावनियों से छुटकारा पाना संभव नहीं है।

+0

हाँ, मुझे लगता है कि यह काम करता है। लेकिन इसका मतलब है कि मुझे मिलने वाली सभी चेतावनी संख्याएं मिल रही हैं। मैं सिर्फ "चेतावनियों की परवाह नहीं करता" कहूंगा और इसके साथ किया जाना चाहूंगा। – jcollum

+0

मेरा जवाब अपडेट किया गया। – Brian

+0

अपडेट: कोशिश की गई/पी: NoWarn = true और/p: NoWarn = CA1051 - कोई अच्छा परिणाम नहीं। अभी भी अन्य चेतावनियों का एक टन मिल रहा है। – jcollum

0

http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/96b3ea2e-92ed-4483-bbfe-a4dda3231eb9

इस के अनुसार, यह दबाया नहीं जा सकता।

+0

हाँ, मैंने इसे पढ़ा। यह एमएसबिल्ड चेतावनियों पर लागू होता है। मैं कंपाइलर चेतावनियों को दबा देना चाहता हूं। संपादित प्रश्न – jcollum

0

ऐसा लगता है कि not possible है ...

Warnings with MSB prefix are thrown by MSBuild. Currently, we can't suppress MSBuild warnings.

+0

कुछ पर लागू होता है लेकिन सभी नहीं: CS0219 जैसी चीजें (चर 'xxxxxx' असाइन की गई है लेकिन इसका मान कभी भी उपयोग नहीं किया जाता है) एमएसबिल्ड त्रुटियों को नहीं लगता है। – jcollum

+0

यह एक कंपाइलर चेतावनी है, एमएसबी चेतावनी नहीं। क्या आप तर्कों में गुजर रहे हैं ... क्या आपने इसे चेक आउट किया है ... http: //social.msdn.microsoft.com/Forums/en-US/msbuild/thread/94ae238b-e755-4023-a6cb-c113df841c82/ –

+0

हां , मैंने इसे पढ़ लिया है। समाधान को बदलने में शामिल है, यही कारण है कि मैंने निर्दिष्ट किया कि मैं प्रश्न में .sln फ़ाइल को बदलना नहीं चाहता था। मैं जो पूछ रहा हूं वह शायद असंभव/उदास – jcollum

1

मैं इस की कोशिश की है और या तो चेतावनी को दबाने नहीं कर सकते, जब तक कि मैं MSBuild.exe

4

के लिए/NoWarn संपत्ति पर बाहर उन्हें सूचीबद्ध इस प्रयास करें:

msbuild.exe C:\Dev\BigSolution.sln /p:WarningLevel=0 /p:RunCodeAnalysis=false 
9

मैं जानता हूँ कि यह एक पुरानी पोस्ट है लेकिन यह मुझे सही रास्ते पर मिला और मेरे एमएसबिल्ड कॉल में निम्नलिखित जोड़कर इसे सभी चेतावनियों और आउटपुट को दबा दिया क्योंकि यह प्रोजेक्ट बनाया गया था। मेरे पास बैच फ़ाइल में है इसलिए मुझे प्राप्त होने वाला एकमात्र आउटपुट मेरा मानना ​​है कि अंत परिणाम और कोई भी संदेश जो मैं इको से संकेत देता हूं। रहस्य/क्लैप स्विच में था। तो मैंने इसे देखा और उन सभी में डाल दिया जो आउटपुट आउटपुट करते हैं।प्रत्येक व्यक्ति ने अधिक से छुटकारा पा लिया लेकिन अभी भी पीले चेतावनियां आ रही थीं और जब मैंने त्रुटियों को केवल स्विच जोड़ा, तो कोई और आउटपुट नहीं था।

call msbuild /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo 
+0

धन्यवाद, यह पूरी तरह से काम करता है। – Czenda

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