ভিজ্যুয়াল স্টুডিওতে জিরো রেফারেন্স কোডগুলির তালিকা পান


133

ভিজ্যুয়াল স্টুডিও ২০১৩-তে একটি বিশেষ কোডের রেফারেন্সের সংখ্যা (পদ্ধতি, সম্পত্তি, ক্ষেত্র, ...) কোড লেন্স দ্বারা দেখানো হয়েছে । আমি ভিজ্যুয়াল স্টুডিওতে অব্যবহৃত (শূন্য রেফারেন্স) কোড পেতে চাই । এগুলি পাওয়ার কোনও উপায় আছে কি?

আমি নীচের রেফারেন্স বলতে চাই:

এখানে চিত্র বর্ণনা লিখুন


7
আমি মনে করি তিনি সেই সমস্ত পদ্ধতির একটি তালিকা চান যা নির্দিষ্ট করে দেওয়া পদ্ধতির রেফারেন্সের সংখ্যা শূন্যের তুলনায় না করে রেফারেন্সযুক্ত।
জুর্গেন ক্যামিলারি

1
আপনি যদি না অব্যবহৃত রেফারেন্স খুঁজে পেতে চান, আপনি একটি পাবেন অনেক ডুপ্লিকেট প্রশ্ন। "সি # অব্যবহৃত কোডটি সন্ধান করুন" এর জন্য কেবল গুগল করুন
পানাগিওটিস কানভোস

1
হ্যাঁ, আমি সমস্ত অব্যবহৃত কোডগুলিতে পদ্ধতি, বৈশিষ্ট্য ইত্যাদি রয়েছে
এমনটি

1
মনে রাখবেন যে আপনি নিশ্চিত হতে পারবেন না যে publicকোনওটি পুরো কোড বেস অনুসন্ধান না করে অব্যবহৃত। তবে অব্যবহৃত ইন্টার্নাল এবং বেসরকারীদের ক্ষেত্রে কোড বিশ্লেষণ আপনাকে সতর্ক করবে যদি আপনার যথাযথ সতর্কতা সক্ষম থাকে।
ম্যাথু ওয়াটসন

2
বছর কয়েক পরে, স্ক্রিনশটটি বিভ্রান্তিকর হতে চলেছে।
সিনজাই

উত্তর:


184

সম্ভবত আপনার পরে যা অর্জন করার সর্বোত্তম এবং সহজ উপায় হ'ল ভিজুয়াল স্টুডিওর সাথে বিল্ট-ইন কোড বিশ্লেষণ সরঞ্জামটি আপনাকে সরাসরি ডেড কোড এবং অব্যবহৃত সদস্যদের সন্ধান করতে এবং নিয়ে যাওয়ার জন্য।

এই প্রভাবের জন্য, আমি একটি নতুন কোড অ্যানালাইসিস রুলসেট ফাইল তৈরি করেছি (ফাইলের মাধ্যমে ফাইল-> নতুন-> ফাইল) , বাম ফলকে জেনারেল নির্বাচন করা হয়েছিল এবং এটি বিশ্লেষণের নিয়ম সেটটি সন্ধান করতে নীচে স্ক্রোল করছে , একটি ফাইলের নাম দিয়েছিল, তারপরে অনুসন্ধান এবং নীচের নিয়ম নির্বাচন করা)। রুলসেট ফাইলের সামগ্রীগুলির জন্য নীচে দেখুন যা আপনি অনুলিপি করতে পারেন এবং এক্সটেনশন .ruleset ব্যবহার করে একটি নতুন ফাইলে পেস্ট করতে পারেন।

একটি রুলসেট ফাইল দেওয়া, সলিউশন এক্সপ্লোরার প্যানেলে একটি প্রকল্প ফাইলে ডান ক্লিক করতে পারেন এবং বৈশিষ্ট্যগুলি নির্বাচন করতে পারেন । প্রকল্পের বৈশিষ্ট্য উইন্ডোগুলিতে, বাম প্যানেলে কোড বিশ্লেষণ ট্যাবে ক্লিক করুন , এবং তারপরে .ruleset ফাইলের অবস্থান ব্রাউজ করতে ওপেন ক্লিক করুন । যদি আপনি কোনও সমাধান ফাইলের বৈশিষ্ট্যগুলিতে যান (কোনও প্রকল্পের ফাইলের বিপরীতে), আপনি সমাধানের জন্য প্রতিটি প্রকল্পের কোড বিশ্লেষণ ফাইলটি এক জায়গায় সেট করতে পারেন ( কোড বিশ্লেষণ সেটিংসের অধীনে , এবং সেখানে ড্রপ-ডাউন ব্যবহার করে নির্বাচন করতে পারেন) রুলসেট ফাইল NOT দ্রষ্টব্য: এই বৈশিষ্ট্য উইন্ডোতে ড্রপ-ডাউনটিতে প্রদর্শিত হওয়ার জন্য আপনার অবশ্যই অবশ্যই নিয়মসেট ফাইলটিতে ব্রাউজ করা উচিত।

তারপরে আপনি কেবল প্রজেক্ট / সমাধানের কোড বিশ্লেষণটি চালিয়ে যান ( বিশ্লেষণ-> সলিউশন -অর- অল্ট + এফ 11 এ চালিত কোড বিশ্লেষণ ) এবং এটি সতর্কতা, কোনও অবাস্তব পদ্ধতি বা অব্যবহৃত সদস্য হিসাবে এটি ফিরে আসবে back এমনকি এটি এমন কোনও পদ্ধতি আবিষ্কার করবে যা কোনও পদ্ধতি দ্বারা রেফারেন্সযুক্ত, যার নিজস্ব কোনও রেফারেন্স অন্য কোথাও নেই।

তবে সাবধান হন, ডেড কোডের কোড কোড বিশ্লেষণ আপনাকে যেভাবে ভুলভাবে চালিত করতে পারে সেগুলির মধ্যে একটি, যদি প্রতিনিধিদের মাধ্যমে কেবল পদ্ধতিটি কল করেই অবশ্যই রেফারেন্সটি 'লুকানো' হয়, এবং অবশ্যই প্রতিচ্ছবি হয়।

মৃত কোড সনাক্ত করার নিয়মগুলি, বিশেষত:

  • ব্যক্তিগত পদ্ধতিগুলি যা অন্য কোনও কোড থেকে কল করা হয় না (CA1811)
  • অব্যবহৃত স্থানীয় ভেরিয়েবল (CA1804)
  • অব্যবহৃত ব্যক্তিগত ক্ষেত্র (CA1823)
  • অব্যবহৃত পরামিতি (CA1801)
  • অভ্যন্তরীণ ক্লাসগুলি যা অন্য কোনও কোড (CA1812) থেকে ইনস্ট্যান্ট হয় না।
  • বিটওয়াইস-অথবা সীমিত স্যুইচ (সি 6259) এ ডেড কোড

নীচে আপনার পরিবহণের জন্য উপরের পদক্ষেপগুলি অনুসরণ করে থাকতে পারে .ruleset ফাইলের সামগ্রীগুলি। আপনি কেবল নীচের এক্সএমএল অনুলিপি করতে পারেন, এটি নোটপ্যাড ++ এ পেস্ট করতে পারেন, এক্সটেনশন দিয়ে কোথাও সংরক্ষণ করুন .আরলসেট , ব্রাউজ করুন এবং উপরে বর্ণিত হিসাবে ব্যবহার করুন:

<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0">
  <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
    <Rule Id="CA1801" Action="Warning" />
    <Rule Id="CA1804" Action="Warning" />
    <Rule Id="CA1811" Action="Warning" />
    <Rule Id="CA1812" Action="Warning" />
    <Rule Id="CA1823" Action="Warning" />
  </Rules>
  <Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
    <Rule Id="C6259" Action="Warning" />
  </Rules>
</RuleSet>

30
আমি মনে করি না এটি পুরোপুরি প্রশ্নের উত্তর দেয়। মূল পার্থক্য হ'ল কোডলেন্স আপনাকে জানাবে যে একটি পাবলিক পদ্ধতিতে পুরো সমাধানে শূন্য উল্লেখ রয়েছে। এই চাবি। FxCop, R #, এবং সর্বজনীন নয় এমন কিছুর জন্য দুর্দান্ত আপনার পদ্ধতি method
স্কট ওয়াইলি

1
@ স্কটওয়াইলি - আমি একমত নই আমি কেবল উপরের সমাধানটি চেষ্টা করেছিলাম এবং এটি জন-উল্লেখযোগ্য পাবলিক পদ্ধতিগুলিকে পতাকাঙ্কিত করে না। কোডলেন্সগুলি ডেড কোড, অযৌক্তিক স্থানীয় স্টাফ এবং অব্যবহৃত ভেরিয়েবলগুলি পতাকাঙ্কিত করার ক্ষেত্রে ব্যতিক্রমী ছিল। আমি মনে করি এটি বেশিরভাগ লোকেরা 3 য় পক্ষের সরঞ্জাম ব্যবহার করে ডাব্লু / ও ও ঠিক কী চায় gets
মাইক

7
@ মাইকে এটি বিবেচনা করুন: আপনি যদি একটি বৃহত্তর অপারেশন সহ মৃত কোড সন্ধান করতে চান তবে আপনি ব্যক্তিগত / সুরক্ষিত সদস্যদের যত্ন নেবেন না, কারণ এগুলি স্থানীয় সমস্যা। উদাহরণস্বরূপ, আমি একটি 500k + এলওসি প্রকল্পটি 100+ প্রকল্প এবং 10+ সমাধান সহ একটি সংগ্রহস্থল প্যাটার্ন আর্কিটেকচারে স্থানান্তরিত করছি। কোনও উপাদান স্থানান্তরিত করার পরে, আমার জানতে হবে যে আমি কোন পুরানো ইন্টারফেসগুলি মুছতে পারি। Eclipse এর মতো কিছু আইডিইতে ঠিক সেই জন্য সরঞ্জাম রয়েছে। গ্রাই-আউট স্থানীয় পদ্ধতিগুলি কেবল আমার উদ্বেগ নয়, আমি পাবলিক ক্লাস / ইন্টারফেসের একটি তালিকা চাই যেখানে কোড লেন্স আমাকে "0" বলবে।
অলিভার শিমার

0

https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/

"দুর্ভাগ্যক্রমে, [ভিজ্যুয়াল স্টুডিও বিশ্লেষণে] আপনি কেবল অব্যবহৃত বেসরকারী সদস্যদের সনাক্ত করতে পারবেন This কারণ কোড বিশ্লেষকরা ধরে নিয়েছেন যে পাবলিক সদস্যরা অন্য প্রোগ্রামগুলি দ্বারা ব্যবহৃত হতে পারে This আপনি যদি ওয়েব সার্ভিসের মাধ্যমে এপিআই হিসাবে প্রকাশ করছেন তবে এটি সত্য হতে পারে you're বা আপনার কোডটি একটি লাইব্রেরি হিসাবে প্রকাশ করছে ... ... অব্যবহৃত পাবলিক সদস্যদের জন্য যাচাই করার সুবিধার সাথে রিশার্পারের একই কোড বিশ্লেষণ ফাংশন রয়েছে ""


0

আমি প্রতিটি ফাইল দিয়ে যাব, সবকিছু ভেঙে ফেলার জন্য Ctrl-MO কমান্ডটি করব, তারপরে 0 রেফারেন্সটির সন্ধানে চারদিকে স্ক্রোল করুন।


-1

এটি সম্পাদন করার জন্য এখানে একটি ম্যানুয়াল উপায় রয়েছে যা আমি জনসাধারণ হিসাবে চিহ্নিত চিহ্নিত অব্যবহৃত শ্রেণীর সন্ধানের জন্য ব্যবহার করেছি।

  1. আপনার সমাধানে একটি প্রকল্পের জন্য "ব্যক্তিগত ক্লাস" দিয়ে সমস্ত "পাবলিক বর্গ" অনুসন্ধান করুন এবং প্রতিস্থাপন করুন। "পাবলিক স্ট্যাটিক ক্লাস" এবং / অথবা "পাবলিক অ্যাবস্ট্রাক্ট ক্লাস" প্রতিস্থাপনের প্রয়োজন হতে পারে।
  2. সমস্ত ত্রুটি সন্ধান করতে তৈরি করুন
  3. বিল্ডে প্রতিটি ত্রুটির জন্য, রেফারেন্সযুক্ত শ্রেণীর জন্য ফাইলটি পুনরুদ্ধার করতে আপনার উত্স নিয়ন্ত্রণ ব্যবহার করুন।
  4. বিল্ডটি সফল না হওয়া পর্যন্ত প্রতিটি ত্রুটির জন্য পুনরাবৃত্তি করুন।
  5. পুনরুদ্ধার করা হয়নি এমন বাকী ফাইলগুলি অপসারণের সম্ভাব্য প্রার্থী।
  6. (alচ্ছিক) উপরের ফাইলগুলিতে ক্লাসগুলির নাম পরিবর্তন করুন এবং ত্রুটিগুলি খুঁজে পেতে আরও একটি বিল্ড করুন।
  7. আপনি যে শ্রেণীর নামটি মুছে ফেলতে চান তার নামের জন্য একটি সর্বশেষ অনুসন্ধান করুন যেখানে এটি প্রতিবিম্ব বা যাদু স্ট্রিংগুলিতে ব্যবহার হচ্ছে না এর কোনও উদাহরণ নেই confirm
  8. চিহ্নিত অব্যবহৃত শ্রেণীর ফাইলগুলি সরান।
  9. আপনি পরিষ্কার করতে চান এমন প্রতিটি সমাধান প্রকল্পের জন্য পুনরাবৃত্তি করুন।

দ্রষ্টব্য: আপনি যদি ফাইলের বিধি অনুসারে একটি শ্রেণি অনুসরণ না করেন তবে এর জন্য আরও অনেক বেশি কাজের প্রয়োজন হবে। এছাড়াও, যে কোনও এপিআই পরিষেবাদি শেষের নির্দেশগুলি আপনাকে কোনও বাহ্যিক প্রকল্প দ্বারা ব্যবহৃত হচ্ছে না তা যাচাই করতে হবে।


14
এটি মোটেই ব্যবহারিক নয়।
ডন রোলিং

1
এটি আমার জন্য একটি বড় প্রকল্পে কাজ করে এবং এটি একটি সমাধান। মামলাগুলি যেখানে আরও বেশি কঠিন সেখানে তারতম্য হতে পারে তবে আমি এটি একটি সম্ভাবনা হিসাবে সরবরাহ করতে চেয়েছিলাম।
উলফিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.