2008-12-11 5 views
42

FxCop कस्टम शब्दकोश को सही ढंग से काम करने के लिए कैसे संभव है?FxCop कस्टम शब्दकोश को काम करने के लिए कैसे प्राप्त करें?

मैं शब्द जोड़कर की कोशिश की है फ़ाइल 'CustomDictionary.xml' है, जो FxCop प्रोजेक्ट फ़ाइल को उसी फ़ोल्डर में रखा जाता है के लिए मान्यता प्राप्त होना। यह काम नहीं कर रहा है, क्योंकि मुझे अभी भी FXCop संदेश पुनः लोड करने और फिर से चलाने के बाद भी 'पहचानकर्ताओं को सही ढंग से लिखा जाना चाहिए' FxCop संदेश प्राप्त होता है। संस्करण 1.36 का उपयोग करना।

+2

मैं करने के लिए बदल पुष्टि कर सकते हैं कि यह मेरी मशीन पर भी होता है। मैंने ProcessMonitor का उपयोग यह पुष्टि करने के लिए किया है कि CustomDictionary.xml फ़ाइल FxCop द्वारा पढ़ा जा रहा है, लेकिन त्रुटि बनी हुई है। –

+0

अब तक मैं इस लिंक जो मदद मिल सकती है मिल गया है: VS2008 http://duncanjasmith.blogspot.com/2008/07/creating-custom-dictionary-for-code में कोड विश्लेषण के लिए एक कस्टम शब्दकोश बनाना। एचटीएमएल –

उत्तर

4
मेरी जानकारी, FxCop 1.35 और उसके बाद शब्दकोश के लिए दो स्रोतों का उपयोग करने के

  • माइक्रोसॉफ्ट ऑफिस शब्दकोश
  • ए 'CustomDictionary.xml' फ़ाइल FxCop कार्यक्रम फ़ोल्डर में जमा हो जाती है, बजाय परियोजना फ़ाइल फ़ोल्डर (एमएस वर्ड आदि काम करना चाहिए के माध्यम से शब्दों को जोड़कर)।
+0

मैंने माइक्रोसॉफ्ट ऑफिस डिक्शनरी की कोशिश की। यह काम नहीं किया। –

+0

यह प्रोजेक्ट फ़ाइल फ़ोल्डर में भी काम कर रहा है। मैं वीएस 2017 –

29

आप दृश्य स्टूडियो के अंदर यह उपयोग करते हैं ...

Visual Studio Code Analysis Team Blog

से एक सी # के लिए एक कस्टम शब्दकोश को जोड़ने के लिए और दृश्य मूल परियोजना सरल है:

  1. समाधान Explorer में, इस परियोजना पर राइट क्लिक करें और जोड़ें चुनें -> नई मद ...
  2. टेम्पलेट के तहत उस चयन एक्सएमएल फ़ाइल, एक नाम शब्दकोश के लिए, CodeAnalysisDictionary.xml के रूप में दर्ज इस तरह के और क्लिक
  3. जोड़े समाधान Explorer में, एक्सएमएल फ़ाइल पर राइट क्लिक करें और
  4. गुण उपकरण विंडो में चुनें गुण , कार्रवाई बिल्ड तहत CodeAnalysisDictionary
  5. समाधान Explorer में चुनते हैं, को नव निर्मित शब्दकोश पर डबल क्लिक करें इसे खोलने एक्सएमएल संपादक में
  6. , निम्नलिखित पेस्ट, साथ "ProductName" और "companyname" की जगह अपने टीम का समकक्ष:

    <Dictionary> 
        <Words> 
         <Recognized> 
          <Word>"productname"</Word> 
          <Word>"companyname"</Word> 
         </Recognized> 
        </Words> 
    </Dictionary> 
    

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

+1

का उपयोग कर रहा हूं CodeAnalysisDictionary एक "संपत्ति मूल्य वैध नहीं है।" मेरे सिस्टम पर त्रुटि ट्रिगर करता है। –

+0

"बिल्ड एक्शन के तहत CodeAnalysisDictionary का चयन करें" मुझे यह विकल्प नहीं दिख रहा है - मुझे लगता है कि मैं 'कोई नहीं', 'संकलन', 'सामग्री' और 'एम्बेडेड संसाधन' – Damien

+0

यह शायद बनाम 2010 – Cohen

17

सबसे आसान तरीका है बस इसे "CustomDictionary.xml" कहते हैं और अपने समाधान फ़ोल्डर है, जहां FxCop (1.36 का परीक्षण यहां) में यह डाल करने के लिए स्वचालित रूप से इसे लेने जाएगा, यदि आपके पास है

<CustomDictionaries SearchFxCopDir="True" 
        SearchUserProfile="True" 
        SearchProjectDir="True" /> 

आपकी FxCop प्रोजेक्ट फ़ाइल में।

वैकल्पिक रूप से आप इसे /dictionary कमांड लाइन पैरामीटर के माध्यम से निर्दिष्ट कर सकते हैं।

+0

मुझे लगता है कि आपका मतलब है कहने के लिए "इसे अपने प्रोजेक्ट फ़ोल्डर में डालें" नहीं "इसे अपने समाधान फ़ोल्डर में डालें"। – mhenry1384

+0

नहीं, FxCop प्रोजेक्ट फ़ोल्डर की मूल निर्देशिकाओं की खोज करता है। इसलिए कस्टम शब्दकोश को समाधान फ़ोल्डर में डालें, सभी परियोजनाओं के साथ प्रविष्टियों को साझा करें। –

+1

उपयोग करना 10.0 यह काम नहीं कर रहा है :( –

3

डेविड श्मिट के जवाब above लिए इसके अलावा, आप को बदल/FxCop स्थापना फ़ोल्डर के भीतर से कस्टम शब्दकोश कि FxCop साथ जहाजों को हटाने की जरूरत हो सकती है।

मैं सिर्फ FxCop v1.36 स्थापित किया है, और नहीं मिल सका जब तक मैं C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml पर कस्टम शब्दकोश हटाया मेरे शब्दकोश में परियोजना विशिष्ट शब्दों मान्यता प्राप्त होना।

एक बार, मैं इसे एक तरफ ले जाउंगा, FxCop ने समाधान फ़ोल्डर में CustomDictionary.xml का उपयोग शुरू किया।

यह साझा कस्टम शब्दकोष और परियोजना/समाधान विशिष्ट शब्दों में अन्य कस्टम शब्दकोशों के भीतर सामान्य शब्दों को जोड़ने और वास्तव में FxCop दोनों का उपयोग करने के सवाल के बारे में सवाल पूछता है। लेकिन अब के लिए यह काम कर रहा ....

+0

यदि मैं fxCop फ़ोल्डर में शब्दकोश को हटा देता हूं तो मुझे और त्रुटियां मिलती हैं क्योंकि जेसन जैसे शब्द पहचाने नहीं जाते हैं, और यदि मैं इस शब्दकोश में शब्द जोड़ता हूं (जो कोई वास्तविक समाधान नहीं है) तो शब्द अभी भी पहचाना नहीं गया है। – DevDave

4

मैं अपने निर्माण की प्रक्रिया के हिस्से के रूप में FxCopCmd.exe चला रहा हूँ, और यहाँ मैं दृश्य स्टूडियो 2010 आर सी के साथ शब्दकोश कमांड लाइन पैरामीटर

FxCopCmd.exe ... /dictionary:FxCopDictionary.xml 

इस काम से पारित FxCop का संस्करण। पता नहीं है कि यह पिछले संस्करणों के साथ काम करेगा या नहीं।

1

यह भी सुनिश्चित करें कि फ़ाइल वास्तव में *.xml है और *.xml.txt नहीं है। फिर नोटपैड के साथ फ़ाइल बनाने के लिए मूर्खतापूर्ण महसूस करें और भूल जाएं कि यह हमेशा एक txt एक्सटेंशन जोड़ता है। यही वह मेरे लिए बन गया।

0

मुझे कोडएनालिसिस डिक्शनरी पर सेट करने की आवश्यकता नहीं थी। असल में, मेरे पास एक विकल्प के रूप में भी नहीं था (विजुअल स्टूडियो 2010 प्रोफेशनल का उपयोग करके)। मैं FxCop Integrator एक्सटेंशन का उपयोग कर रहा हूं। यह आपको समाधान पर राइट-क्लिक करने की अनुमति देता है और कोड विश्लेषण चुनें। दूसरा विकल्प अधिक कार्य है। उस के भीतर अधिक कार्य मेनू संपादित करने की क्षमता है FxCop शब्दकोश संपादित करें। जब मैंने संपादन किया, तो उसने समाधान फ़ोल्डर बनाया कोड विश्लेषण जिसमें FxCopDictionary.xml नामक एक नई एक्सएमएल फ़ाइल शामिल है। यह एक्सएमएल फ़ाइल स्थापित की गई है क्योंकि कस्टम डिक्शनरी.एक्सएमएल फ़ाइल की तरह दिखने की उम्मीद होगी।

आशा है कि इससे किसी को वहां मदद मिलेगी!

2

मैंने उपरोक्त उत्तरों में से अधिकांश के साथ संघर्ष किया और समाधान की तलाश में रखा। मैं अंत में मेरी .fxcop फाइल करने के लिए यह परिवर्तन किया है और यह स्रोत नियंत्रण में जाँच की है, यह काम करता है दोनों आदेश पंक्ति और जीयूआई FxCop

से मैं इस लाइन

<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" /> 

<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" > 
    <CustomDictionary Path="$(ProjectDir)/CustomDictionary.xml"/> 
</CustomDictionaries> 
संबंधित मुद्दे