PDA

View Full Version : حرفه ای: دیباگ DLL موجود در پروژه توسط Visual Studio



hmahdavi921
دوشنبه 22 شهریور 1395, 12:46 عصر
با سلام خدمت برنامه نویسان عزیز
دوستان اطلاعی در مورد شرایط و نحوه دیباگ فایل DLL در ویژوال استودیو دارین؟ یکی از دوستان میگفت امکان چنین کاری هست و روی سطر به سطر کدها درست مثل کدهای پروژه میشه این کار رو انجام داد اما یک سری شرایط داره.
اگر اطلاعاتی در این مورد داشتین به اشتراک بزارین ممنون میشم .

mr.sirwan
دوشنبه 22 شهریور 1395, 13:04 عصر
با سلام خدمت برنامه نویسان عزیز
دوستان اطلاعی در مورد شرایط و نحوه دیباگ فایل DLL در ویژوال استودیو دارین؟ یکی از دوستان میگفت امکان چنین کاری هست و روی سطر به سطر کدها درست مثل کدهای پروژه میشه این کار رو انجام داد اما یک سری شرایط داره.
اگر اطلاعاتی در این مورد داشتین به اشتراک بزارین ممنون میشم .

بله امکانش هست، روی متدی که داخل DLL هست و میخواین ازش تو برنامه خودتون استفاده کنین، Breakpoint بذارین و در حالت اجرای برنامه، با F11 کار تریس کردن رو انجام بدین، به این ترتیب کنترل میره داخل متد مورد نظر و خط به خط اجرای دستورات رو نشون میده

مهرداد صفا
دوشنبه 22 شهریور 1395, 14:32 عصر
با سلام خدمت برنامه نویسان عزیز
دوستان اطلاعی در مورد شرایط و نحوه دیباگ فایل DLL در ویژوال استودیو دارین؟ یکی از دوستان میگفت امکان چنین کاری هست و روی سطر به سطر کدها درست مثل کدهای پروژه میشه این کار رو انجام داد اما یک سری شرایط داره.
اگر اطلاعاتی در این مورد داشتین به اشتراک بزارین ممنون میشم .
سلام.
در حالت عادی که هیچ مشکلی نیست و می تونید در صورتی که پروژه Class library جزوی از سلوشن شما هست همونطور که دوستمون جناب mr.sirwan اشاره کردند عمل کنید ولی اگر سورس کتابخونه مورد نظر رو ندارید می تونید از افزونه .NET Reflector استفاده کنید. این افزونه به شما امکان دیکامپایل و مشاهده سورس و دیباگ اسمبلی های .NET (مشروط به اینکه protect نشده باشن) رو میده.
برای دیباگ کردن اسمبلی های داخلی .NET Framework هم علاوه بر مورد بالا، به تازگی امکانی روی VS اضافه شده که می تونید از تنظیمات فعالش کنید.

mr.sirwan
دوشنبه 22 شهریور 1395, 15:42 عصر
سلام.
در حالت عادی که هیچ مشکلی نیست و می تونید در صورتی که پروژه Class library جزوی از سلوشن شما هست همونطور که دوستمون جناب mr.sirwan اشاره کردند عمل کنید ولی اگر سورس کتابخونه مورد نظر رو ندارید می تونید از افزونه .NET Reflector استفاده کنید. این افزونه به شما امکان دیکامپایل و مشاهده سورس و دیباگ اسمبلی های .NET (مشروط به اینکه protect نشده باشن) رو میده.
برای دیباگ کردن اسمبلی های داخلی .NET Framework هم علاوه بر مورد بالا، به تازگی امکانی روی VS اضافه شده که می تونید از تنظیمات فعالش کنید.

و در تکمیل فرمایشات شما باید عرض کنم که وقتی DLL بصورت فایل خارجی باشه و فقط به رفرنس های برنامه ادد شده باشه، باز هم میتونیم در همون حالتی که گفتم به نحوه اجرا دست پیدا کرد (به قول شما، ولی مشروط به اینکه فایل Protect و یا Obfuscate نشده باشه)

hmahdavi921
دوشنبه 22 شهریور 1395, 19:21 عصر
با این حساب چون dll من classLibrary هست کار خاصی لازم نیست و میتونم دیباگ کنم.
ممنون به خاطر پاسختون.

hmahdavi921
پنج شنبه 23 دی 1395, 11:59 صبح
حالا اگر ما دو تا Solution داشته باشیم . که یکی پروژه ی dll باشه و دیگری پروژه اصلی باشه که dll تولید شده رو add refrence کرده باشه . تو این حالت چطور میشه dll رو دیباگ کرد؟