मैं कुछ इसी तरह काम कर रहा हूं। हालांकि यह सवाल थोड़ा पुराना है, मुझे उम्मीद है कि यह आपकी मदद करेगा।
मैंने पोस्ट-बिल्ड ईवेंट बनाकर सबसे अधिक शुरू किया - FxCopCmd को कॉल करता है।
मेरे मामले में, मैं बस कोड का एक छोटा सा सबसेट, बिल्ट-इन नियमों, और भी कुछ कस्टम नियम (एक .dll में) के कुछ
मैं इस के लिए एक .fxcop परियोजना फ़ाइल का उपयोग किया चाहता था - यह सब ठीक है कि मैं जीयूआई के माध्यम से कैसे चाहता था और फिर पोस्ट-बिल्ड इवेंट में प्रोजेक्ट फ़ाइल में FxCopCmd को इंगित करता हूं।
अधिकांश भाग के लिए, यह बहुत अच्छा काम करता था, लेकिन नियम उल्लंघन केवल चेतावनियों के रूप में आया था। "त्रुटियों के रूप में चेतावनियों का इलाज करें" विकल्प इस पर लागू नहीं होता है, इसलिए मुझे एक अलग समाधान के साथ आना पड़ा।
आखिर में मेरे लिए सबसे अच्छा काम करने वाले ब्लॉग पोस्ट पर आधारित था, जिस पर मैंने ठोकर खाई थी।
मैंने दो नई घटनाओं में जोड़ने के लिए प्रोजेक्ट फ़ाइल को संशोधित किया।
मैं FxCop के लिए कुछ अतिरिक्त पैरामीटर और सामान है, लेकिन यह का सार है:
- (निर्माण प्रक्रिया शुरू हो रहा है):
1: <PropertyGroup>
2: <FxCopResults>$(ProjectDir)obj\$(Configuration)\FxCopResults.xml</FxCopResults>
3: <PostBuildEvent>"%25ProgramFiles%25\Microsoft FxCop 10.0\FxCopCmd.exe" /file:"$(TargetPath)" /console /out:"$(ProjectDir)obj\$(ConfigurationName)\FxCopResults.xml"</PostBuildEvent>
4: </PropertyGroup>
5: <Target Name="BeforeBuild">
6: <Delete Files="$(FxCopResults)" ContinueOnError="true" />
7: </Target>
8: <Target Name="AfterBuild">
9: <Error Text="One or more FxCop warnings occurred." Condition="Exists('$(FxCopResults)')" />
10: </Target>
सामान्य प्रवाह इस तरह है
- निर्माण शुरू होने से पहले, पिछले FxCop परिणाम (यदि वे मौजूद हैं) साफ़ कर दिए गए हैं।
- पूर्व बिल्ड घटना
शुरू हो रहा है
- (BUILD शुरू होता है)
- पोस्ट-बिल्ड ईवेंट ट्रिगर (जो FxCopCmd चलता है)
- खत्म पोस्ट-बिल्ड के बाद, अगर वहाँ FxCop परिणाम हैं, एक त्रुटि उठाया है। उदाहरण के लिए - - अगर FxCop विश्लेषण उत्पन्न
- , (BUILD प्रक्रिया के पूरा होने)
अब 4 नियम के उल्लंघन, अपने निर्माण 4 चेतावनी और 1 त्रुटि उत्पन्न होगा।
मुझे उम्मीद है कि इससे मदद मिलती है।
स्रोत
2010-12-22 18:54:52
क्या यह केवल वीएस के प्रीमियम या अल्टीमेट संस्करणों पर लागू नहीं होगा? –
[... कोड स्टूडियो प्रीमियम या विजुअल स्टूडियो अल्टीमेट से कोड विश्लेषण ... (http://msdn.microsoft.com/en-us/library/3z0aeatx%28v=vs.100%29.aspx) –