DCSIMG
How To debug a two projects together - Yoav Blob

Yoav Blob

How To debug a two projects together

בתחילת הפיתוח של הפרוייקט שלנו הגדרנו בsolution אחד את הפרויקטים השונים כאשר היה פרויקט WEB ולכל שיכבה היה פרויקט משלה בנוסף הגדרנו פרויקט infrastructure שהכיל קוד שלא היה קשור ספציפית לפרויקט שלנו, לאחר שהצוות התחיל לפתח מערכת נוספת במקביל.

הוחלט להוציא את התשתיות של שני הפרויקטים לsolution נפרד ושני המערכות יבצעו reference לפרויקטי התשתית.

ובאמת זה מה שעשינו והגדלנו והוספנו רישום אוטומטי לGAC של DLL התשתית בשביל למנוע בלגן עם ריבוי גרסאות והעתקות של הDLLים. ואז ביום בהיר(למרות שהיה יום גשום נהוג לכתוב יום בהיר) ניסיתי לבצע דבאג למתודה שכרגע סיימתי לכתוב, אני רגיל לכתוב את המתודה ולהשתמש בה מתוך הפרויקט עצמו ואז ולבצע בדיקות למתודה דרך המערכת ולבצע דבאג עם צריך. אבל אבוי אני מנסה לבצע step into ולא מצליח.

לאחר כמה דקות של מחשבה הבנתי שאני לא יכול לבצע step into בגלל שלDLL אין קובץ PDB שיאפשר ביצוע דבאג, אבל מה עושים שאלתי קודם את עצמי ואחר כך את שותפי לדרך שני ואבי, וקיבלתי את התשובה הברורה לך יואב לך על האינטרנט ומצא תשובתך,

וכך עשיתי באינטרנט מצאתי משהו שנתקל בדיוק באותה הבעיה והוא מציע להעתיק את קובץ הPDB לתוך הספרייה המתאימה בGAC הפתרון הזה יגרום לזה שכשהVS ינסה לדבאג הוא ימצא את הקובץ הPDB ואת קובץ הDLL ביחד.

אבל הפתרון הזה דורש ממני להוסיף פעולת העתקה ידנית של קובץ באירוע post build, לאחר מחשבה נוספת הבנתי שיש פתרון פשוט בהרבה כל מה שצריך לעשות זה, מתי שרוצים לדבאג לבצע העתקה של קובץ הPDB והDLL לספריית הBIN של הפרויקט ואז הDLL יטען משם ולא מהGAC ובסיום הדבאג למחוק את הקבצים מהBIN ולהמשיך לעבוד מול הGAC.

תוכן התגובה

Hitchhiker כתב/ה:

היי, אם אני מבין נכון (קצת היה קשה לקרוא, מציע ליישר לימין). אתה לא מצליח לעשות step into לתוך dll שיושב ב-GAC? זה נשמע מוזר, כי זה אמור לעבוד אחרי שתקמפל מחדש את שני ה-Solutions (לפחות לי זה תמיד עובד). גם אם הקובץ נמצא ב-GAC, הרי אתה מוסיף את ה-reference ל-DLL שנמצא בתיקייה כלשהי, Visual Studio יודע לחפש בתיקייה הזו את ה-PDB. יכול להיות שיש אצלך בעיה אחרת אם זה לא עובד. נסה להוסיף את ה-reference מחדש אחרי שהוא כבר נמצא ב-GAC.

# April 5, 2007 7:08 PM

Yoav Michaeli כתב/ה:

לא אני מוסיף reference ל DLL מתוך הGAC אחרת מה המשמעות לשים אותו בGAC...

# April 5, 2007 11:06 PM

fe_rdt כתב/ה:

היי יואב! תתחדש על הבלוג...

ועכשיו התגובה:

עוד שיטה לבצע דיבאג ל-dll's שנמצאים ב- GAC

היא לפתוח את חלון Modules דרך: Debug->Windows->Modules

שם נמצאים כל ה- Dll's הטעונים כרגע להרצת האלפיקציה.

לבצע Load Symbols ל- Dll הרצוי ולבחור את קובץ ה- pdb.

וככה ניתן להמנוע מטעויות שנובעות מ "לשכוח" את ה-dll בספריית ה- bin ולעבוד עם גרסה שונה של הקובץ.

בהצלחה...

אפי.

# April 16, 2007 1:38 AM

ליאור צורף כתב/ה:

Hi,

We are planning an event for bloggers and would like to send you an invitation.

Can you please contact me with your email address at http://blogs.microsoft.co.il/blogs/liorz/contact.aspx

Thanks,

Lior Zoref

Microsoft Israel

# June 20, 2007 12:57 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 2 and 1 and type the answer here:


Enter the numbers above: