פתרון התקנה עדכון וחזרה לאחור¶
פתרון התרגיל הראשון¶
הבדיקה על מכונה נקייה מסירה תלות מקרית בPATH, בruntime של IDE ובקבצים שנמצאים רק אצל המפתח. בbuild עם /MD נצטרך לזהות את רכיבי הruntime המתאימים ואת דרך הפריסה הנתמכת שלהם. נשמור את גרסת התלות ואת הארכיטקטורה כחלק מחבילת השחרור.
העתקת DLL שרירותי יכולה ליצור אי־התאמה או להשאיר תלות נוספת חסרה. נבדוק גם DLLים נטענים דינמית שאינם מופיעים רק ברשימת imports הרגילה. הצלחת התקנה אינה הצלחת הפעלה, והפעלת חלון ריק אינה בדיקה של כל המסלולים המשתמשים בתלויות.
פתרון התרגיל השני¶
התאמת publisher קושרת את זהות הpackage לתעודת החתימה. אמון במכונה הוא החלטה נפרדת לגבי התעודה והשרשרת שלה. אפשר לקבל חבילה שהמבנה והחתימה שלה תקינים ועדיין אינה מורשית להתקנה בסביבת היעד.
נשמור את קוד הכשל ואת השלב שבו התקבל, ונבדוק את subject המדויק ואת הstore המתאים. לא נתקן שגיאה באמצעות הרחבת אמון לכל תעודה או שינוי publisher אקראי שמנתק את זהות המוצר הקיים.
פתרון התרגיל השלישי¶
נכתוב את התצורה החדשה לקובץ זמני בבעלות המוצר, נאמת אותה ונבצע מעבר מוגדר לפרסום. לפני הפרסום, הגרסה הישנה נשארת מקור האמת. אחרי הפרסום, הקוד החדש צריך להיות מסוגל לזהות commit גם אם התהליך נפל לפני שהציג הצלחה.
אם הקוד הישן קורא רק schema ראשון, נשמור backup שניתן לשחזר לפי מדיניות ברורה או נדאג מראש לתאימות קריאה. לא נריץ installer ישן ונקווה שהוא יוריד אוטומטית את גרסת הנתונים. בבדיקה נפריד בין rollback של package לבין rollback של state יישומי, ונרשום איזה מידע של המשתמש עלול ללכת לאיבוד במסלול שנבחר.