MSBuild SonarQube धावक (कम से कम संस्करण 1.0 और 1.0.1 में) हमेशा बलों "उत्पन्न कोड से दबाने परिणाम (केवल प्रबंधित)" जब FxCop निर्माण के दौरान शुरू की है झंडा जांच की जानी। SonarQube.Integration.targets#L342
आप कमांड RunCodeAnalysis:
चरण के दौरान शुरू की को देखकर अपने निर्माण लॉग में इस व्यवहार को सत्यापित कर सकते हैं, देखें:
RunCodeAnalysis:
Running Code Analysis...
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe
/outputCulture:1033
/out:"bin\Debug\ConsoleApplication1.exe.CodeAnalysisLog.xml" /file:"bin\Debug\ConsoleApplication1.exe" /ruleSet:"=C:\Users\dinesh\Desktop\tmp\ConsoleApplication1\.sonarqube\conf\\SonarQubeFxCop-cs.ruleset"
[... references ...]
/rulesetdirectory:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\\Rule Sets"
/rule:"-C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop\\Rules"
/searchgac /ignoreinvalidtargets /forceoutput /successfile **/ignoregeneratedcode** /saveMessagesToReport:Active /timeout:120 /reportMissingIndirectAssemblies
आपको दिखाई देना चाहिए /ignoregeneratedcode FxCopCmd.exe पर प्रदान किया गया।
अब, केवल इस FxCop नियमों को इस ध्वज से दबाया जाएगा। उदाहरण के लिए स्टाइलकॉप और रीशेपर नियम इस ध्वज को समझ नहीं पाएंगे और अभी भी उस विधि पर रिपोर्ट करेंगे।
एफवाईआई, ऐसा लगता है कि 0xकथन की उपस्थिति के कारण FxCop इस विधि को शामिल करता है: सी # कंपाइलर इस कथन के लिए असेंबली में काफी जटिल आईएल कोड उत्पन्न करता है। FxCop असेंबली का विश्लेषण करता है (और स्रोत कोड नहीं), यही कारण है कि इसे उत्पन्न कोड के रूप में yield
कथन का इलाज करना है।
तो, सोनारक्यूब में, आपको CA1305
के लिए कोई समस्या नहीं दिखाई देनी चाहिए, भले ही आपने "प्रोजेक्ट पर जेनरेट कोड (केवल प्रबंधित) से सप्रेस परिणाम" चेक किया हो या नहीं।
स्रोत
2015-09-11 09:12:26
विश्लेषक कैसे जानते हैं कि इसे उस विधि को विश्लेषण से बाहर कर देना चाहिए? क्या आपने इसे कुछ विशेष विशेषताओं के साथ चिह्नित किया है, क्या यह विशेष रूप से नामित फ़ाइल या विशेष प्रोजेक्ट प्रकार में है? –
हाय दिनेश, मैंने [जेनरेटेडोड] विशेषता के साथ विधि को चिह्नित करने का प्रयास किया लेकिन इससे मदद नहीं मिली। – PankajH
यदि आप उपरोक्त विकल्प के साथ विजुअल स्टूडियो में उपर्युक्त विधि का विश्लेषण करते हैं तो मुझे अनचाहे किया गया है, मुझे CA1305 के लिए उल्लंघन मिलता है और चेक के साथ मुझे कोई उल्लंघन नहीं मिलता है। – PankajH