حدد موقع / مسار البناء الزائد من exe باستخدام عاكس .NET أو أداة أخرى
-
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 لتفريغ الكود في الملفات. قبل إجراء أي تغييرات ، تأكد من إعادة البناء.