سؤال

كيف يمكنني العثور على المراجع غير المستخدمة في مشاريعي وحذفها؟

أعلم أنه يمكنك بسهولة إزالة عبارات الاستخدام في مقابل 2008، ولكن هذا لا يزيل المرجع الفعلي في مشاريعك.سيستمر نسخ ملف dll المشار إليه في حزمة bin/setup الخاصة بك.

هل كانت مفيدة؟

المحلول

*ملحوظة:يرى http://www.jetbrains.net/devnet/message/5244658 للحصول على نسخة أخرى من هذه الإجابة.

من خلال قراءة المشاركات، يبدو أن هناك بعض الالتباس فيما يتعلق بالسؤال الأصلي.اسمحوا لي أن ألقي نظرة على ذلك.

المنشور الأصلي يطرح السؤال حقًا:"كيف يمكنني تحديد وإزالة المراجع من مشروع Visual Studio إلى مشاريع/تجميعات أخرى غير قيد الاستخدام؟" يريد الملصق أن تظهر التجميعات كجزء من إخراج البناء.

في هذه الحالة، يمكن لـ ReSharper مساعدتك تعريف لهم، ولكن عليك أن يزيل لهم نفسك.

للقيام بذلك، افتح "المراجع" في متصفح الحلول، ثم انقر بزر الماوس الأيمن على كل مجموعة مرجعية، ثم اختر "البحث عن الرمز التابع".يرى:

http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code

سوف تحصل إما على:

  1. قائمة بالتبعيات على هذا المرجع في نافذة المتصفح، أو

  2. مربع حوار يخبرك "لم يتم العثور على الكود المعتمد على الوحدة النمطية XXXXXXX."

إذا حصلت على النتيجة الثانية، فيمكنك النقر بزر الماوس الأيمن فوق المرجع، وتحديد إزالة، وإزالته من مشروعك.

بينما يتعين عليك القيام بذلك "يدويًا"، أي.مرجع واحد في كل مرة، سوف ينجز المهمة.إذا قام أي شخص بأتمتة هذا بطريقة ما، فأنا مهتم بمعرفة كيفية القيام بذلك.

يمكنك تجاهل العناصر الموجودة في .Net Framework إلى حد كبير نظرًا لأنه لا يتم نسخها عادةً إلى مخرجات البناء الخاصة بك (عادةً - على الرغم من أن هذا ليس صحيحًا بالضرورة بالنسبة لتطبيقات Silverlight).

يبدو أن بعض المشاركات تجيب على السؤال:"كيف يمكنني إزالة استخدام العبارات (C#) من ملف التعليمات البرمجية المصدر غير المطلوب لحل أي مراجع داخل هذا الملف".

في هذه الحالة، يساعد ReSharper بطريقتين:

  1. يحدد عبارات الاستخدام غير المستخدمة لك أثناء اكتشاف الأخطاء بسرعة.تظهر كتحذيرات لفحص الكود - سيظهر الكود باللون الرمادي (يكون افتراضيًا) في الملف وسيقدم ReSharper تلميحًا لإزالته:

    http://www.jetbrains.com/resharper/features/code_analogy.html#On-the-fly_Error_Detection

  2. يسمح لك بإزالتها تلقائيًا كجزء من عملية تنظيف التعليمات البرمجية:

    http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives

أخيرًا، أدرك أن ReSharper يقوم بتحليل التعليمات البرمجية الثابتة على الحل الخاص بك.لذلك، إذا كان لديك مرجع ديناميكي للتجميع - على سبيل المثال من خلال الانعكاس أو التجميع الذي تم تحميله ديناميكيًا في وقت التشغيل والوصول إليه من خلال واجهة - فلن يلتقطه. لا يوجد بديل لفهم قاعدة التعليمات البرمجية الخاصة بك وتبعيات المشروع أثناء عملك على مشروعك.أجد ميزات ReSharper مفيدة جدًا.

نصائح أخرى

يمكنك استخدام ال 'إزالة المراجع غير المستخدمة"امتداد كتبت:

http://visualstudiogallery.msdn.microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097

تعد إزالة المراجع غير المستخدمة ميزة يدعمها Visual Studio 2008 بالفعل.لسوء الحظ، فقط لمشاريع VB .NET.

لقد فتحت اقتراحًا على Microsoft Connect للحصول على هذه الميزة لمشاريع C# أيضًا:

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

إذا كنت تحب هذه الميزة أيضًا، فيمكنك التصويت لاقتراحي.

جرب هذه: مساعد المراجع

ملخص

يساعد المساعد المرجعي في إزالة المراجع غير المستخدمة من مشاريع C#أو F#أو VB.NET أو VC ++/CLI في Visual Studio 2010.

ريشاربر سوف أفعل هذا من أجلك (وأكثر من ذلك بكثير!)

سيتضمن ReSharper 6.1 هذه الميزات:

-تحسين المراجع:قم بتحليل مراجع التجميع الخاصة بك واستخداماتها في التعليمات البرمجية، واحصل على قائمة بالمراجع الزائدة عن الحاجة وقم بإزالتها.

-إزالة المراجع غير المستخدمة:إعادة هيكلة سريعة لإزالة مراجع التجميع الزائدة عن الحاجة.

-الحذف الآمن على مراجع التجميع:سيتم حذف مراجع التجميع إذا كانت جميعها زائدة عن الحاجة، وإلا فسيؤدي ذلك إلى إلغاء الاستخدامات ويمكنه إزالة مراجع التجميع الزائدة فقط من القائمة المحددة.

لقد فعلت ذلك دون تمديد في VS 2010 Ultimate Architecture-> إنشاء الرسم البياني التبعية-حسب التجميع ، ويظهر التجميعات المستخدمة ، وإزالة المراجع غير المستخدمة يدويًا.

لدي إجابة مجانية تعمل في أي إصدار من Visual Studio وأي إصدار Framework.ولا يقوم بإزالة المراجع غير المستخدمة، ولكنه يحددها.

يمكنك استخدام Telerik JustDecompile على المشروع الخاص بك دلل.ما عليك سوى فتح ملف dll في JustDecompile والانتقال إلى الأسفل References لمعرفة ما يتم استخدامه فعليًا في ملف dll المترجم.

enter image description here

بالنظر إلى أن VisualStudio (أم أنه msbuild؟) يكتشف المراجع غير المستخدمة ولا يدرجها في ملف الإخراج، يمكنك كتابة برنامج نصي يوزع المراجع خارج csproj، ويقارن ذلك مع التجميعات المشار إليها التي تم اكتشافها عن طريق الانعكاس على مخرجات المشروع.

إذا كنت دوافع...

أعتقد أنه تم نسخها في bin\، لأنه في المشروع الذي أزال المرجع يوجد مرجع لمشروع آخر له نفس المرجع ...

إذا كنت تعرف المراجع غير المستخدمة، فيمكنك إزالتها يدويًا.
في Solution Explorer، انقر بزر الماوس الأيمن فوق المرجع الموجود في ملف مراجع العقدة، ثم انقر فوق إزالة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top