विजुअल स्टूडियो: अनइडेड असेंबली का पता लगाना

बड़ी और/या लंबी चल रही परियोजनाओं पर, मैं कई असेंबली और नामस्थानों का संदर्भ देता हूं, और अक्सर मैं कुछ कार्यक्षमताओं को बाद में हटा देता हूं या इसे एक अलग परियोजना में ले जाता हूं।

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

यदि यह महत्वपूर्ण है तो विजुअल स्टूडियो 2005 और 2008 पेशेवर का उपयोग करना।

संपादित करें: अभी तक धन्यवाद। ReSharper के साथ समस्या या "ब्रेक बनाने पर निकालें और पढ़ें" यह है कि यह प्रत्येक फ़ाइल और असेंबली पर काफी कठिन है (मेरी परियोजना में 7 असेंबली में लगभग 120 .cs फ़ाइलें हैं, और समाधान के बाहर कुल 18 असेंबली संदर्भित करती हैं) तो आदर्श रूप में मैं कुछ "एक-क्लिक" ढूंढ रहा हूं। बिग बोनस कुछ स्वचालित तरीके से इंगित करता है जिसका उपयोग रिपोर्ट उत्पन्न करने के लिए बिल्डस्क्रिप्ट में किया जा सकता है :)

0
रिशेर्पर ने हाल ही में एक सस्ता व्यक्तिगत लाइसेंस बनाया है। मुझे लगता है कि यह अब सी # के लिए 134 € है। नि: शुल्क उपकरण निश्चित रूप से अच्छा होगा (यदि एमएसबिल्ड ऐसा कर सकता है जो honkey-dorey द्वारा होगा!), लेकिन मैं मुख्य रूप से कुछ ऐसा काम करता हूं जो पहले काम करता है :)
जोड़ा लेखक Michael Stum, स्रोत
संबंधित: विज़ुअल स्टूडियो का उपयोग करके
जोड़ा लेखक Josh Lee, स्रोत
अच्छा होगा अगर प्रश्न मुफ्त उपकरणों के मामले में था, न सिर्फ उपकरण। मुझे रिशेर्पर होता है इसलिए नीचे दिया गया समाधान अच्छा है, लेकिन फिर भी ...
जोड़ा लेखक Oskar, स्रोत

10 उत्तर

हाँ, मुझे नहीं लगता कि एक है। मैं बस कुछ हटा देता हूं जो मुझे नहीं लगता है तो निर्माण करें: /

Btw। जो त्रुटियों का उपयोग जारी रखेगा। आप विजुअल स्टूडियो पावर कमांड का उपयोग कर सकते हैं उपयोग को हटाने और क्रमबद्ध करने के लिए, तो पहले ऐसा करें, फिर यादृच्छिक असेंबली हटाएं: डी

0
जोड़ा

कोई भी सभ्य कोड प्रोफाइलर आपके लिए यह करेगा। मुझे व्यक्तिगत रूप से देवपार्टनर पसंद है।

0
जोड़ा

यह आपके संदर्भित असेंबली (मुझे लगता है) में कोड में किसी भी संदर्भ से छुटकारा नहीं मिलेगा, लेकिन आप अपनी प्रत्येक परियोजना के गुणों पर जा सकते हैं, संदर्भ प्राप्त कर सकते हैं, और "अप्रयुक्त संदर्भ ..." पर क्लिक कर सकते हैं। विजुअल स्टूडियो फिर आपको वहां उन्हें हटाने का विकल्प देता है।

हालांकि समाधान स्तर पर ऐसा करने का कोई तरीका नहीं है।

0
जोड़ा

( यहां से क्रॉस-पोस्ट किया गया) यह देखते हुए कि विजुअलस्टूडियो (या यह msbuild है?) अप्रयुक्त संदर्भों का पता लगाता है और उन्हें आउटपुट फ़ाइल में शामिल नहीं करता है, आप एक स्क्रिप्ट लिख सकते हैं जो csproj से संदर्भों को पार करता है, और तुलना करता है कि संदर्भित असेंबली के साथ प्रतिबिंबित किया गया है परियोजना उत्पादन।

यदि आप प्रेरित हैं ...

0
जोड़ा

मुझे Google में खोज करते समय यह प्रश्न मिला और मेरे कोड से अप्रयुक्त "उपयोग" कथन को हटाने का तरीका ढूंढ रहा था।

रिफैक्टर बहुत अच्छा है, लेकिन यह मेरे लिए उपलब्ध नहीं है। हालांकि, जैसा कि यह पता चलता है कि विजुअल स्टूडियो 2008 स्वयं ही करता है।

यहां दिए गए कदम हैं:

  1. विजुअल स्टूडियो में कोड लोड करें।
  2. कोड पेज पर कहीं भी राइट-क्लिक करें।
  3. मेनू से "उपयोग व्यवस्थित करें" पर क्लिक करें।
  4. "अप्रयुक्त उपयोग निकालें" पर क्लिक करें

किया हुआ। मुझे एहसास है कि यह मूल प्रश्न का उत्तर नहीं देता है (यह पूरी परियोजना के लिए इस बड़े पैमाने पर कर रहा है) लेकिन यह मेरे प्रश्न का उत्तर देता है।

0
जोड़ा
यह विजुअल स्टूडियो 2010 में भी उपलब्ध है
जोड़ा लेखक Junior M, स्रोत

Resharper will do this for you and you can set it up in the Clean Code option that you can run solution wide ;o)

0
जोड़ा

यदि आपके पास ReSharper इंस्टॉल है, तो समाधान एक्सप्लोरर के भीतर से आप किसी संदर्भ पर राइट-क्लिक कर सकते हैं और आश्रित कोड ढूंढें क्लिक करें। यदि यह परिणामों के एक संवाद के साथ वापस आता है तो आप उस संदर्भ/असेंबली का उपयोग कर रहे हैं। अगर आपको संदेश मिलता है "मॉड्यूल पर निर्भर कोड मॉड्यूल नाम नहीं मिला।" फिर आपको उस संदर्भ/असेंबली को हटाने के लिए ठीक होना चाहिए क्योंकि इसका उपयोग नहीं किया जा रहा है।

0
जोड़ा

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

लंबी कहानी छोटी है, यह इस समस्या को हल करती है लेकिन यह सिर्फ इतना ही है कि यह बहुत अधिक है।

0
जोड़ा

यदि आपके पास रीशेपर है, तो समाधान का चयन करें, राइट क्लिक करें और क्लीनअप कोड का चयन करें। फिर Resharper समाधान में हर कोड फ़ाइल के माध्यम से जाना होगा।

प्रोजेक्ट संदर्भों को हटाने के लिए, जब संकलक चलता है तो यह संदर्भ नहीं जोड़ता है यदि कोई कोड उस डीएल का उपयोग नहीं करता है।

0
जोड़ा

अप्रयुक्त संदर्भों को हटाकर एक सुविधा विजुअल स्टूडियो 2008 पहले से ही समर्थित है। दुर्भाग्यवश, केवल वीबी .NET परियोजनाओं के लिए।

मैंने सी # परियोजनाओं के लिए यह सुविधा प्राप्त करने के लिए माइक्रोसॉफ्ट कनेक्ट पर एक सुझाव खोला है:

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326

यदि आपको यह सुविधा भी पसंद है तो आप मेरे सुझाव को वोट दे सकते हैं।

0
जोड़ा
कनेक्ट पर सुझाव खोलने के लिए धन्यवाद, पर्याप्त लोग ऐसा करने के लिए प्रयास नहीं करते हैं। साथ ही मैं सोच रहा हूं कि सी # प्रोजेक्ट के लिए मैक्रो के उपयोग के माध्यम से इस छिपी हुई सुविधा को पाने के लिए वैसे भी है।
जोड़ा लेखक jpierson, स्रोत