حدد موقع / مسار البناء الزائد من exe باستخدام عاكس .NET أو أداة أخرى

StackOverflow https://stackoverflow.com/questions/2185626

  •  25-09-2019
  •  | 
  •  

سؤال

لديّ exe يتم نشره حاليًا على خادم الإنتاج الخاص بنا (C# .NET 2). لقد ورثت مهمة إجراء بعض التغييرات على هذا التطبيق وإعادة النشر.

لم أكتب هذا التطبيق وقد أُشار إليّ في عدد قليل من المجلدات المختلفة على محركات أقراص مختلفة مع بعض حلول Visual Studio المختلفة (~ 10) التي كانت تعويذة مختلفة لهذا التطبيق عبر الزمن ويمكن أن تكون منافسين لمشروع Visual Studio تم استخدام ذلك لإنشاء هذا exe ولكني لا أعرف المشروع الذي تم استخدامه الذي يتطابق مع الإنتاج EXE.

هل هناك طريقة باستخدام .NET Reflector أو أداة أخرى لتحديد مسار الملف الأصلي الذي تضعه الملفات المصدر عند استخدامها لتجميع EXE, ، يمكنني بعد ذلك العمل للخلف لتحديد حل Visual Studio الصحيح والبدء في إجراء تغييرات هناك.

شكرًا

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

المحلول

هذا يبدو وكأنه جحيم واحد من الموقف إذا لم تتمكن من التعرف على أصل ما يجري في الإنتاج.

ومع ذلك ، فإن أحد الحلول الممكنة هو إلقاء نظرة على رأس التصحيح لتجميع .exe ، إذا تم تجميعه برموز تصحيح ، فقد يحتوي على المسار الكامل الأصلي لـ PDB ، مما يمنحك فكرة عن المكان الذي تم بناؤه فيه . يمكنك الحصول عليها مع dumpbin الأداة التي هي جزء من Windows SDK.

إليك مثال على الإخراج:

  Debug Directories

        Time Type       Size      RVA  Pointer
    -------- ------ -------- -------- --------
    4A0F2A94 cv           51 0006672C    6492C    Format: RSDS, {77468AA8-8494-46AC-87DF-422721517504}, 8, C:\sources\mcs\class\Mono.Cecil\obj\Debug\Mono.Cecil.pdb

والأفضل من ذلك ، إذا كان لديك PDB مفيدة ، فيمكنك استخدام أداة مثل PDBDump لمعرفة الملفات التي تم استخدامها لتجميع التجميع.

نصائح أخرى

أفضل رهان لك هو استخدام Reflector وأحد مكونات مولد الملفات على http://www.codeplex.com/reflectoraddins لتفريغ الكود في الملفات. قبل إجراء أي تغييرات ، تأكد من إعادة البناء.

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