2009-06-21 5 views
74

क्या MSBuild को कमांड लाइन से चलाते समय विशिष्ट MSBuild चेतावनी (उदा। MSB3253) को अक्षम करने का कोई तरीका है?विशिष्ट MSBuild चेतावनी को दबाने के लिए कैसे करें

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release 

मुझे पता चला है कि मैं सी # चेतावनी (जैसे CS0618) MSBuild.exe के लिए एक और पैरामीटर का उपयोग करने को दबाने कर सकते हैं::

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618 

हालांकि अपने निर्माण स्क्रिप्ट MSBuild.exe ज्यादा निम्नलिखित तरीके से कॉल , यह दृष्टिकोण MSBuild चेतावनियों के लिए काम नहीं करता है। शायद एक और जादू संपत्ति सेट करने के लिए है?

मैं .NET 3.5 और VS2008 का उपयोग कर रहा हूं।

उत्तर

28

एमएसडीएन फोरम में this थ्रेड के अनुसार एमएसबिल्ड चेतावनियों को दबाया नहीं जा सकता है।

+13

नोट: यह उत्तर एमएसबिल्ड ("एमएसबी" के साथ उपसर्ग) से त्रुटियों के लिए सही है, जैसा कि ओपी ने पूछा था। यदि Google आपको यहां लाया है और आप कंपाइलर त्रुटियों को दबा देना चाहते हैं (उदाहरण के लिए "सीएस 2008"), तो आप ओपी क्या कर सकते हैं: '/ p: nowarn = 2008' (संख्या से" सीएस "पट्टी) –

+1

क्या आपको पता होना है अगर यह अभी भी मामला है? –

+0

एमएसडीएन डॉक्स ऑन/अबर्न [यहां] (http://msdn.microsoft.com/en-us/library/7f28x9z3.aspx)। एमएसबिल्ड अपने कोरकंपाइल लक्ष्य के हिस्से में इस चर को csc.exe तक पास करता है। –

46

मैं /p:WarningLevel=X

msbuild.exe MySolution.sln /t:Rebuild /p:WarningLevel=0 /p:Configuration=Release 
             ^^^^^^^^^^^^^^^^^ 
Warning 
Level Meaning 
-------- ------------------------------------------- 
     0 Turns off emission of all warning messages. 

     1 Displays severe warning messages 

     2 Displays level 1 warnings plus certain, less-severe warnings, such 
     as warnings about hiding class members 

     3 Displays level 2 warnings plus certain, less-severe warnings, such 
     as warnings about expressions that always evaluate to true or false 

     4 (the default) Displays all level 3 warnings plus informational warnings 
+2

मुझे नहीं लगता कि यह काम करता है यदि आपने समाधान में प्रत्येक प्रोजेक्ट के लिए चेतावनी स्तर को 0 से अधिक होने के लिए कॉन्फ़िगर किया है। – si618

+2

हाँ - दाएं। यह डैशबोर्ड पर टेप का उपयोग करके आपकी कार में मोटर समस्या को बदलने जैसा है :-) – cacau

+0

बस इसे MSBuild 15.4.8.50001 के साथ आज़माएं, और/p: WarningLevel = 0 MSBuild चेतावनी MSB3227 को दबाने नहीं देता है। – Thought

18

MSB3253 के लिए तुम सिर्फ परियोजना फ़ाइल में सेट कर सकते हैं के साथ चेतावनी स्तर को दबाने के लिए प्रबंधित किया है (* .csproj) इस तरह के चेतावनी का कारण है कि।

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    <!-- some code goes here --> 
    <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> 
     None 
    </ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> 
    <!-- some code goes here --> 
    </PropertyGroup> 
+3

इस उत्तर में एमएसबी 3270 भी शामिल है। जब आप प्लेटफार्म विशिष्ट असेंबली लोड प्रबंधित करने के लिए कस्टम असेंबली रिज़ॉल्वर का उपयोग कर रहे हों तो बहुत आसान। – MOverlund

+10

क्या एमएस में कहीं भी इन जादू सेटिंग्स की पूरी सूची है ..? – ATV

+0

क्या आप कृपया अधिक जानकारी लिख सकते हैं कि यह कैसे किया जाना चाहिए? कौन सी फाइल? संशोधित किया जाना चाहिए? क्या यह एमएसबी 8012 के लिए काम करता है? – Gayane

6

(मेरे जैसे) अब इस Googling उन लोगों के लिए: आगामी MSBuild 15.0 अंत में implement the /NoWarn option विशिष्ट चेतावनी को दबाने के लिए (साथ /WarnAsError के रूप में या तो विशिष्ट चेतावनी के इलाज के लिए (विजुअल स्टूडियो 2017, मुझे लगता है के साथ जारी किया जाएगा) या त्रुटियों के रूप में सभी चेतावनियां)।