2011-06-20 15 views
6

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

sample library on CodePlex में यह दिखाया गया है कि कस्टम कोड विश्लेषण नियम लाइब्रेरी को कैसे तैनात किया जाए, जो लाइब्रेरी के डीएलएल को प्रोग्राम फ़ाइलों फ़ोल्डर में डंप करने के लिए सेटअप प्रोजेक्ट का उपयोग करता है -> माइक्रोसॉफ्ट विजुअल स्टूडियो 10.0 -> टीम टूल्स -> स्टेटिक विश्लेषण टूल - > FxCop -> नियम

इसके अलावा, एक बहुत ही उपयोगी कैसे blog post by Duke Kamstra भी % प्रोग्राम फ़ाइलें% \ माइक्रोसॉफ्ट विजुअल स्टूडियो 10.0 \ टीम उपकरण \ स्टेटिक विश्लेषण उपकरण \ FxCop \ नियम में लाइब्रेरी की dll कॉपी करने के लिए पता चलता है।

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

मेरे लिए एक सही समाधान मेरे कस्टम * होना चाहिए। नियम फ़ाइल डीएलएल के सापेक्ष पथ से अवगत रहें, लेकिन मैं ऐसा करने में असफल रहा हूं।

कोई सुझाव?

उत्तर

4

आपकी .ruleset फ़ाइल में, आपको कस्टम नियम DLLs के सापेक्ष पथ जोड़ने में सक्षम होना चाहिए। उदाहरण के लिए:

<?xml version="1.0" encoding="utf-8"?> 
<RuleSet Name="Sample" Description="Sample ruleset" ToolsVersion="10.0"> 
    <RuleHintPaths> 
    <Path>..\Tools\FxCop\SomeRules.dll</Path> 
    <Path>..\Tools\FxCop\SomeOtherRules.dll</Path> 
    </RuleHintPaths> 
    ... 
</RuleSet> 
+0

क्या आपको पता है कि पथ किस सापेक्ष है? क्या यह .ruleset फ़ाइल के स्थान से संबंधित है? – RobSiklos

+0

पथ परियोजना के सापेक्ष हैं। – Raithlin

3

मैं भी सही परियोजना-रिश्तेदार रिश्तेदार अपने कस्टम नियमों विधानसभा के लिए (Nicole's answer रूप में प्रदान की) पथ मेरे नियमों नियम-सेट संपादक में प्रदर्शित करने का कारण नहीं पाया, जबकि एक ही विधानसभा के लिए एक निरपेक्ष पथ किया नियम दिखाओ। जब मैंने नियम सक्षम किए और फिर पथ को किसी सापेक्ष पथ में बदल दिया, तो नियम संपादक में रहते हैं और स्रोत विश्लेषण के दौरान चलाए जाते हैं। यदि मैं निर्दिष्ट रिश्तेदार पथ के साथ नियमों को अनचेक करता हूं, तो नियम गायब हो जाते हैं - यह नियम संपादक में एक बग की तरह लगता है।

तो, यदि आपके नियम किसी सापेक्ष पथ को निर्दिष्ट करते समय प्रकट नहीं होते हैं, तो नियमों को सक्षम करने, और फिर एक सापेक्ष पथ पर वापस स्विच करने का प्रयास करें (प्रति परियोजना राइटलिन के प्रोजेक्ट स्थान के सापेक्ष)।

0

यह समस्या भी वी.एस. 2013 को प्रभावित करने के मैं पाया है कि जब मैं दृश्य स्टूडियो के नियम-सेट का उपयोग कर नियम-सेट को खोलने कि मैन्युअल कि विधानसभा से नियम एक नियम विधानसभा और के सापेक्ष पथ में प्रवेश उन नियमों प्रदर्शित होने का परिणाम देगा लगता है डिजाइनर यूआई। नियम भी चलाए जाएंगे।

तो एक संचालन CustomRules.ruleset ऐसा दिखाई दे सकता है, जहां SR1000 से SomeRules.dll एक नियम है और SOR1000SomeOtherRules.dll से है। नोट उपकरण संस्करण 12.0 दृश्य स्टूडियो के लिए 2013.

<?xml version="1.0" encoding="utf-8"?> 
<RuleSet Name="Sample" Description="Sample ruleset" ToolsVersion="12.0"> 
    <RuleHintPaths> 
    <Path>..\Tools\FxCop\SomeRules.dll</Path> 
    <Path>..\Tools\FxCop\SomeOtherRules.dll</Path> 
    </RuleHintPaths> 
    <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed"> 
    <Rule Id="SR1000" Action="Error" /> 
    <Rule Id="SOR1000" Action="Warning" /> 
    <!-- etc. --> 
    </Rules> 
</RuleSet> 

ध्यान दें कि आप आसानी से जोड़कर मानक माइक्रोसॉफ्ट नियम शामिल कर सकते हैं शामिल हैं इस तरह RuleSet है कि:

<Include Path="minimumrecommendedrules.ruleset" Action="Default" /> 
0

मैं दृश्य स्टूडियो का उपयोग कर रहा अद्यतन 2 के साथ सी # 2015।मेरे कस्टम नियम विजुअल स्टूडियो 2015 के नियम संपादक में दिखाई नहीं देते हैं। हालांकि जब मैं CodeAnalysis चलाता हूं, तो उल्लंघन होने पर उल्लंघन दिखाई देता है। मेरे RuleHintPath इस तरह दिखता है और नियम-सेट फ़ाइल का स्थान के सापेक्ष है:

<RuleHintPaths> 
    <Path>..\Rules</Path> 
</RuleHintPaths> 

तो क्योंकि उल्लंघन का पता चला रहे हैं, यह एक तथ्य यह है कि शासन DLLs दिया रिश्तेदार पथ से पाए जाते हैं। नियम नियम के भीतर नियम क्यों नहीं दिखते हैं सवाल है। यही कारण है कि मैं संपादक की एक बग मानता हूं।

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