2010-08-09 5 views
6

मेरी प्रोजेक्ट में, स्थिर जांच अक्षम है, लेकिन फिर भी, जब मैं cmd ​​के साथ msbuild.exe चलाता हूं, तो यह प्रत्येक प्रोजेक्ट के लिए स्थिर जांच शुरू करता है ... क्या इसे अक्षम करने के लिए पैरामीटर के साथ कोई तरीका है?क्या एमएसबिल्ड कोड संविदाओं के साथ स्थिर अनुबंध विश्लेषण चलाने की अनुमति नहीं है?

उत्तर

8

यह एक 'छोटी' देर से हो सकता है, लेकिन जब से मैं सिर्फ एक ही समस्या का सामना करना पड़ा और /p:RunCodeAnalysis=false मेरे लिए काम नहीं करता है:

msbuild ... /p:CodeContractsRunCodeAnalysis=false की कोशिश करो।

यह the code contracts documentation और मेरे अनुभव के अनुसार फरवरी 2011 के रूप में काम करता है।

2

निम्नलिखित यह करना चाहिए:

MSBuild ... /p:RunCodeAnalysis=false 
1

यदि आप msbuild को पैरामीटर पास नहीं करना चाहते हैं या आप विजुअल स्टूडियो से निर्माण कर रहे हैं, तो स्थिर कोड अनुबंध चेक और कोड विश्लेषण को दबाने का एक तरीका है।

नोटिस: प्रत्येक * .csproj फ़ाइल में यह शामिल है: <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

नेट 4.0 MSBuild.exe और Microsoft.CSharp.targets पथ के लिए "C:\Windows\Microsoft.NET\Framework\v4.0.30319\"

है ओपन Microsoft.CSharp.targets Project अंदर नई PropertyGroup जोड़े की तरह:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
... 
<PropertyGroup> 
    <CodeContractsRunCodeAnalysis>false</CodeContractsRunCodeAnalysis> 
    <RunCodeAnalysis>Never</RunCodeAnalysis> 
    <CodeContractsReferenceAssembly>DoNotBuild</CodeContractsReferenceAssembly> 
</PropertyGroup> 
... 
<!-- a lot of stuff --> 
... 
</Project> 

ऐसा करने से MSBuild आदेश पंक्ति तर्क (अनुकरण करेगा यानी /p:CodeContractsRunCodeAnalysis=false,RunCodeAnalysis=Never,CodeContractsReferenceAssembly=DoNotBuild

अब आपके पीसी पर आपके सभी बिल्ड (एमएसबिल्ड और विजुअल स्टूडियो से) कोड को छोड़ देंगे एनडी स्थिर कोड अनुबंध विश्लेषण, तो आपको कमांड लाइन से तर्क पारित करने की आवश्यकता नहीं है।

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