PracticU

ערכת התקנה - SETUP MSI

בלי כתוביותעם כתוביות
PracticU › קורס WinForms - תוכנות רגילות בווינדוס › ערכת התקנה - SETUP MSI
מילון מושגים:
Visual Studio - סביבת פיתוח משולבת (IDE) של מיקרוסופט לכתיבה, ניפוי והרצה של קוד, בעיקר בשפות .NET.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
פריימוורק - מסגרת תוכנה שמספקת מבנה וכלים מוכנים לפיתוח יישומים, כדי לחסוך כתיבת קוד חוזר.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
וירוס - תוכנה זדונית שמשכפלת את עצמה ומתפשטת ממחשב למחשב, ועלולה לפגוע בקבצים או בפעולת המערכת.
רישיון - ההיתר החוקי להשתמש בתוכנה, הקובע את תנאי השימוש, מספר ההתקנות וזמן התוקף.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.

ערכת התקנה - SETUP MSI
ההרצאה מראה איך בונים ערכת התקנה (Setup) לאפליקציית Windows Forms ב-Visual Studio: מהפרויקט הנפרד ועד קיצורי דרך, מסכי ההתקנה והסרה נקייה דרך Custom Installer.
השלבים העיקריים
1. פרויקט נפרד באותו Solution: ערכת ההתקנה היא פרויקט Setup משלה, לצד פרויקט ה-Windows Forms. קובץ ה-sln נשמר בתיקייה אחת מעל תיקיות הפרויקטים, ולא בתוך אחד מהם.
2. קובץ התוכנית: ב-Application Folder מוסיפים את Primary Output של פרויקט הטופס. כך מותקן קובץ ה-exe בלבד, ולא קוד המקור.
3. קיצורי דרך: קיצור על ה-Desktop ותיקייה בתפריט Programs מצביעים לקבצים בתוך תיקיית ההתקנה אצל הלקוח, לא במחשב הפיתוח.
4. פרטי המוצר: מגדירים Manufacturer, Product Name, Author ו-Version, ואת ה-Framework הנכון. חסרים פרטים כאלה עלולים לגרום לאנטי-וירוס להזהיר מפני התוכנה.
5. אייקונים: מעתיקים את האייקון ל-Resources ומשתמשים בו בטופס, ב-NotifyIcon, בקיצורי הדרך ובקובץ ה-exe עצמו.
6. מסכי ההתקנה: ב-User Interface Editor משנים את הטקסטים ומוסיפים מסך License Agreement עם קובץ RTF.
7. פעולות מותאמות: Custom Actions מריצים מחלקה ב-Custom Installer בשלבי Install ו-Commit ו-Uninstall. ההרצאה לא דורשת Rollback.
8. הסרה: קובץ uninstall.bat מפעיל את ההסרה לפי Product Code, ושלב ה-Uninstall מוחק את הקובץ שהאפליקציה יצרה בזמן הריצה.
9. בנייה ובדיקה: מנקים, בונים מחדש ב-Release, ובודקים התקנה והסרה בפועל.
פקודות והגדרות
- echo off ואחריו msiexec /x עם ה-Product Code המועתק מ-Properties של פרויקט ה-Setup, בתוך uninstall.bat.
- הפניה ל-System.Configuration.Install, ומחלקה ציבורית שיורשת מ-Installer עם RunInstaller(true).
- דריסה של Install, Commit ו-Uninstall. ב-Install לא צריך לעשות דבר, אבל הקריאה ל-base חייבת להישאר, כי היא יוצרת את קובץ InstallState.
- נתיב קובץ ה-exe מתקבל מ-Context.Parameters["assemblypath"].
- ב-Commit שואלים את המשתמש עם MessageBox עם Yes ו-No, ואם התשובה Yes מפעילים את הקובץ עם Process.Start.
טעויות נפוצות
- לא משתמשים ב-Application.StartupPath או ב-Application.ExecutablePath בתוך ה-Custom Installer. המחלקה רצה מתוך פרויקט ההתקנה, והטופס לא רץ.
- קריסה בתוך ה-Custom Installer עלולה למנוע הסרה של ההתקנה, ולכן כל הקוד עטוף ב-try עם catch ריק.
- משתנים גלובליים ממחלקה אחרת לא זמינים כאן, ולכן הערכים נכתבים ישירות בקוד.
- קבצים שמצורפים להתקנה חייבים להישמר בתוך פרויקט ההתקנה. מחיקה של הקובץ המקורי תגרום לשגיאה בבנייה.
- בונים את ההתקנה ב-Release, לא ב-Debug.
שימו לב
קובץ setup.msi מספיק אם יש אצל הלקוח Windows Installer. אם לא, צריך גם setup.exe, שמתקין את Windows Installer בעצמו. מסמך ה-EULA הוא מסמך משפטי, ומומלץ שעורך דין יכין או יאשר אותו.
בסוף ההרצאה יש התקנה שמוסיפה קיצורי דרך ואייקונים, מציגה תנאי שימוש, ומסירה את עצמה בלי להשאיר עקבות.
השיעור הבא בקורס: ערכת התקנה - ClickOnce - ביצוע Publish

פרקי ההרצאה: ערכת התקנה - SETUP MSI

  1. 00:00

    מדוע יוצרים ערכת התקנה

  2. 01:55

    ערכת התקנה כפרויקט נפרד

  3. 11:39

    הוספת פרויקט Setup

  4. 14:35

    תיקיות מחשב הלקוח

  5. 17:10

    הוספת Primary Output וקיצור דרך

  6. 23:25

    ההבדל בין MSI ל-EXE

  7. 27:35

    הרצת ערכת ההתקנה

  8. 32:59

    מאפייני ה-Setup להתקנה מקצועית

תמלול ההרצאה: ערכת התקנה - SETUP MSI

הטקסט המלא של הדקות הראשונות בהרצאה «ערכת התקנה - SETUP MSI» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

    אנחנו מגיעים לנושא של יצירת ערכת התקנה. אחרי שאנחנו בנינו מערכת עבור הלקוח, בנינו אפליקציית ווינפורם, בנינו בדיוק את כל מה שצריך להיות באפליקציה בכדי שהיא תרוץ אצל הלקוח, אנחנו רוצים עכשיו לתת ללקוח את האפליקציה שלנו.

  2. 00:23

    ואנחנו ראינו שבסופו של דבר לאפליקציה יש איזשהו קובץ אקסקיושן ויכול להיות כל מיני קבצים נוספים שמתלווים אליה.

  3. 00:31

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

  4. 00:54

    מה הסיבה? הלקוחות בדרך כלל לא ממש מבינים הרבה במחשבים, לא תמיד, אבל לא הרבה מבינים. ואם אנחנו ניתן ללקוח שלנו סתם איזשהו קובץ אקסקיושן, או חבילה של קבצים עם כל מיני תיקיות וכל מיני קבצים, יכול להיות שהלקוח לא ידע מה לעשות איתם.

  5. 01:14

    איפה הוא בדיוק ישים אותם? על הדסטופ? הוא יפתח תיקייה במחשב? יכול להיות שהוא יסתבך עם זה. אנחנו רוצים לתת ללקוח ערכת התקנה. זה בעצם קובץ שהוא מריץ אותו, ויש לו מה שנקרא ויזארד, אשף, חלונות, הוא לוחץ next, next, next, next, והערכת התקנה היא זאת שמתקינה לו על המחשב את התוכנית שכתבנו,

  6. 01:37

    שולחת לו את הקובץ אקסקיושן בדיוק למקום המתאים, מתקינה ליד הקובץ האקסקיושן את כל הקבצים הנוספים שהתוכנית שלנו צריכה. אנחנו צריכים להגדיר את כל הדברים האלה וזה יהיה הכי קל עבור הלקוח.

  7. 01:50

    אז כאן אנחנו הולכים לראות איך אנחנו בתור מתכנתים עושים ערכת התקנה אחרי שכבר סיימנו לבנות את האפליקציה שלנו. הדבר הראשון שאנחנו צריכים להבין זה שערכת התקנה בוויז'ואל סטודיו זה פרויקט נפרד שאנחנו צריכים לבנות.

  8. 02:08

    בנוסף לפרויקט שאנחנו תמיד בונים Windows Forms Application, אנחנו צריכים לבנות עוד פרויקט נפרד. הפרויקט הנפרד שאנחנו בונים הוא ערכת התקנה עבור קובץ ה-Execution של תוכנת ה-Windows Forms שאנחנו בונים.

  9. 02:25

    בגלל שאנחנו הולכים עכשיו להתעסק באותה סביבת הפיתוח בשני פרויקטים שונים, אחד ו-Windows Forms Application שהוא התוכנה שהלקוח בסופו של דבר רוצה להריץ, והיא נוטלת את הפתרון ללקוח, בנוסף אנחנו רוצים עוד פרויקט אחר של ערכת התקנה.

  10. 02:44

    את שניהם אנחנו רוצים תחת אותה Visual Studio בשביל לראות את שניהם ולפתח את שניהם ביחד. לכן יש חשיבות עכשיו לקובץ ה-Solution. קובץ ה-Solution זה קובץ שאחראי על מספר פרויקטים.

  11. 03:02

    כל פרויקט אמור להיפתח בתיקייה נפרדת. לכן קובץ ה-Solution צריך להיווצר בתיקייה נפרדת שנמצאת מעל כל התיקיות של כל הפרויקטים האחרים.

  12. 03:16

    והוא לא אמור להיות באותה התיקייה של אחד הפרויקטים, במידה ויש לי מספר פרויקטים. במקרה הזה יש לי מספר פרויקטים, כי יש לי את הסטאפ, שהוא פרויקט נפרד.

  13. 03:29

    זאת אומרת, אם אני עכשיו רק אלך ואצור סתם איזשהו פרויקט טסטר, ואני זורק אותו פה בתיקיית סטאפ, אני אומר אוקיי, ואני רוצה להסתכל מה בעצם נוצר לי מבחינת קבצים.

  14. 03:46

    אז אני יכול ללכת לפרויקט מקש ימני, Open Folder in Windows Explorer, אני רואה שיש לי את התיקייה של הפרויקט, וקובץ ה-SLN נמצא בתוך התיקייה של הפרויקט, והתמונה הזאת היא לא נכונה.

  15. 04:00

    במידה ויש לי מספר פרויקטים שהם קשורים יחד, אני לא רוצה שה-SLN תהיה באחד מהם. בואו נעשה Close Solution, בחזרה ונמחוק את מה שעשינו כרגע delete ביי ביי ונראה איך נכון לפתוח את פרויקט במידה ויש לנו מספר פרויקטים שקשורים יחד.

  16. 04:28

    אז יש שתי שיטות שיטה אחת זה פשוט מאוד לתת שם לפרויקט ולסמן פה create directory for solution וכמובן השם של התיקייה יכול להיות שם אחר זה הולך להיות השם של התיקייה של קובץ ה-SLN וזה הולך להיות השם של תיקיית הפרויקט והשם של הפרויקט.

  17. 04:53

    בואו נקרא לשם של התיקייה טסט סלושן ולשם של הפרויקט טסטר. אם אנחנו עושים את זה אז אנחנו יכולים לראות שבוויז'ל סטודיו אנחנו רואים את אותו הדבר. כאן אנחנו רואים שיש לנו תיקייה אחת עבור הסלושן, בתוכה יש לנו את קובץ ה-SLN שאחראי על הפרויקטים, קובץ ה-Solution User Options שמחזיק את ההגדרות של ויז'יאל

  18. 05:24

    סטודיו לגבי אילו פרויקטים ואילו קבצים היו פתוחים בוויז'יאל סטודיו וכולי, ותיקיה עבור כל פרויקט שיש לנו. אם עכשיו אנחנו הולכים לסולושן ומוסיפים פרויקט נוסף, מכה שמיניה לסולושן Add New Project, אז אנחנו יכולים לבחור פרויקט נוסף רק אם הוא כמובן קשור לפרויקט

  19. 05:47

    שאנחנו בונים. לדוגמה, אני בונה כרגע DLL, אני קורא לו My DLL, ואם אני אבצע אוקיי, אני אראה שה-DLL נפתח כפרויקט או כתיקייה נפרדת ליד התיקייה שלנו וה-SLN אחראי על שניהם, זאת אומרת שה-SLN נמצא רמה אחת מעל שניהם וזאת התמונה הנכונה שצריך לעשות.

  20. 06:14

    זאתי שיטה אחת, בואו נראה שיטה שנייה, נסגור את ה-Solution ונמחק את שני הפרויקטים שעשינו, אפשר למחוק פשוט את התיקייה של הפרויקט של ה-Solution ליתר דיוק, נחזור בחזרה ונראה שיטה נוספת.

  21. 06:36

    שיטה נוספת אומרת כזה דבר בואו ניגש לאדר פרוג'קט טייפס נפתח ויז'ל סטודיו סלושיונס וכאן אנחנו הולכים לבחור בבלנק סלושיין. בלנק סלושיין זה סך הכל קובץ ריק לגמרי שאין בתוכו פרויקטים וזה רק סלושיין ריק הוא פותח לי תיקייה עם קובץ SLN. אחר כך אנחנו נוכל להוסיף פרויקטים נוספים לסלושיין אבל הוא מכין לי את הקרקע בכדי שתהיה לי תיקייה מיוחדת

  22. 07:08

    עבור הסלושיין ובתוכה פרויקטים של הסולושן. בואו נקרא לזה כבר טסט סט-אפ, או בואו נקרא לזה סט-אפ אקזמפל, יותר טוב. נבצע אוקיי, ומה שאנחנו רואים כרגע זה סך הכל בוויז'ל סטודיו סולושן ריק, סולושן סט-אפ אקזמפל, אפס פרויקטים יש בו,

  23. 07:37

    אבל יותר חשוב נפתחה לי תיקייה, בתוכה יש לי קובץ SLN, יש לי קובץ סולושן יוזר אופשנס, אין לי תיקיות אחרות של פרויקטים, אבל עכשיו אם אנחנו נוסיף פרויקט אז הוא יפתח כמו שצריך כתיקייה נפרדת בתוך תיקיית הסלושן.

  24. 07:54

    אז עכשיו אנחנו יכולים ללכת ולהוסיף Windows Forms Application ובואו נבנה איזושהי תוכנית מאוד פשוטה רק בשביל שיהיה לנו משהו לבצע במהלך ההתקנה.

  25. 08:06

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

  26. 08:23

    משהו הכי פשוט בעולם, מבצע אוקיי. אנחנו מסתכלים כרגע על סייר הקבצים ואנחנו רואים תיקייה סמיילי, הסולושן לא נמצא בתוכה, הוא נמצא מעליה, זאת התמונה הנכונה.

  27. 08:37

    בתוכה יש את כל הקבצים של הפרויקט. בואו נעצב בזריזות את הפרויקט הזה, נגדיר שיש לנו פה טופס אחד, נגדיר שהטופס הזה, הטופס נפתח במרכז המסך בצורה כזאת, נגדיר שיש עליו את הסימן סמיילי, בואו ניקח לאיזשהו לחצן, נגדיר שהלחצן הזה נקרא ptn-smiley, יש עליו את הסימן סמיילי,

  28. 09:31

    יש לו איזה גופן גדול כזה, והלחצן עצמו נמצא בדיוק במרכז הטופס מבחינה אופקית, בדיוק במרכז הטופס מבחינה אנכית. הטופס הזה לא מוגדר כ-Maximize, Maximize Box False, יוזר לא יכול לשנות את הגודל שלו, כן, כל מיני הגדרות בכדי שלדמות אפליקציה אמיתית, Fixed Single,

  29. 10:05

    ובנוסף, צבע רקע. נבחר כאן איזשהו צבע, יש לנו את Light Sky Blue, הכל בסדר. בואו נבצע פעולה מסוימת בלחצן, Double Click, וכל מה שאנחנו רוצים לעשות זה Message Box של Smiley, בצורה כזאת.

  30. 10:46

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

  31. 11:18

    בואו נרשום פה רק סמיילי פורם בתור השם של הפורם אז אנחנו רוצים להוסיף פרויקט חדש זה אומר שאנחנו עכשיו פונים לסולושן מקש ימני add ניו פרוג'קט ואנחנו רוצים ללכת ולבחור מאדר פרוג'קט טייפס סטאפ אנד דיפלוימנט ויז'ל סטודיו אינסטולר תוכנה שנקראת סטאפ פרוג'קט כלומר פרויקט מסוג סטאפ פרוג'קט בואו ניתן לו את השם סטאפ נבצע אוקיי

  32. 11:59

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

  33. 12:17

    אם אנחנו מסתכלים על סייר הקבצים אנחנו רואים שיש לנו את התיקייה של הסלושן בתוכה יש קובץ sln-suo ותיקייה עבור כל פרויקט זאת התמונה הנכונה כפי שראינו.

  34. 12:31

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

  35. 12:53

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

  36. 13:13

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

  37. 13:33

    כל ההגדרות האלה, אלה הגדרות שאנחנו יכולים להגדיר בפרויקט הסטאפ. ועכשיו, מה הרעיון? התיקיות שאנחנו רואים כאן מצד שמאל, זה בעצם תמונה של התיקיות של מחשב הלקוח.

  38. 13:54

    אלה התיקיות שאמורות להיות כביכול במחשב הלקוח. הרי אני כרגע לא נמצא במחשב הלקוח, אני מחשב פיתוח, אני המתכנת, אני עובד בחברה או בבית ואני נמצא במחשב מתכנת.

  39. 14:10

    אבל הסטאפ אומר לי, תראה, אם הלקוח יתקין את התוכנה שלו, אז אלו תמונת התיקיות שיש לו במחשב. אם אתה עכשיו שם פה איזשהו קובץ, אז הקובץ הזה יישתל על ידי תוכנת הסטאפ באותה התיקייה שאתה שמת פה משלושת התיקיות האלה.

  40. 14:33

    בואו נבין מה זה שלושת התיקיות. התיקייה הראשונה שאנחנו רואים נקראת Application Folder. כאשר הלקוח יתקין את התוכנית שלנו, הוא יכול לבחור איפה התוכנית תותקן. יש לו זכות בתור זה שהוא הבעלים של המחשב של עצמו והוא מתקין תוכנה, הוא יכול לבחור איפה הוא רוצה להתקין את התוכנה.

  41. 14:59

    והוא יכול לבחור כל מקום, הוא יכול לבחור קוננסי, קוננסי פרוגרם פיילס, על הדסטופ, איפה שבא לו. אנחנו יכולים לתת לו איזה נתיב דיפולט, אבל בסופו של דבר הוא מחליט איפה להתקין את התוכנית.

  42. 15:11

    באותה התיקייה שהוא יחליט להתקין את התוכנית, התיקייה הזאת נקראת אפליקיישן פולדר. כנראה שאנחנו נרצה בתוך אפליקיישן פולדר לשתול את קובץ האקסקיושן, ואולי עוד קבצים שצריכים להיות ליד קובץ האקסקיושן.

  43. 15:28

    Users, דסקטופ, זה בעצם תמונה של הדסקטופ שלו. מה כנראה נרצה לשתול לו על הדסקטופ, אם בכלל?

  44. 15:39

    אולי נרצה לשתול לו איזשהו קיצור דרך לאפליקציה, שאם הוא ילחץ דאבל קליק על קיצור הדרך, אז קיצור הדרך יפעיל לו את האפליקציה שנמצאת בתוך האפליקיישן פולדר, כלומר את קובץ האקסקיושן.

  45. 15:54

    בקיצור דרך יפעיל את קובץ האקסקיושן שנמצא בתוך אפליקיישן פולדר. Users, Programs Menu זה בעצם התפריט הזה שאנחנו רואים פה.

  46. 16:06

    Programs Menu. אולי אנחנו רוצים גם כאן לשים איזה משהו שקשור לאפליקציה שלנו. כמו שכשאתם מתקינים תוכנה אחרת, תוכנה שאתם מורידים מהאינטרנט או משהו כזה, פתאום אתם רואים שהיא מופיעה לכם פה.

  47. 16:22

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

  48. 16:42

    אוקיי, אז בואו נראה איך עושים את זה. דבר ראשון, מה שאני אעשה, אני אבחר את ה-application folder ואני הולך לאזור הריק כאן שזה התוכן שלה, מכה שימני, add ואני רוצה עכשיו להוסיף מה?

  49. 16:58

    אני יכול להוסיף תיקייה, אני יכול להוסיף קובץ כמו קובץ טקסטואלי או כמו תמונה אני יכול להוסיף dll אסמבלי מסוים ואני רוצה להוסיף כרגע משהו שנקרא project output.

  50. 17:15

    project output זה בעצם תוצר מסוים של פרויקט אחר שנמצא אצלי בסלושן הנוכחי וזה בדיוק מה שאנחנו רוצים להוסיף כי כאשר אנחנו נמשיך ונפתח את האפליקציה שלנו אז קובץ האקסקיושן כמובן הולך להתעדכן וברגע שאנחנו מגדירים שאנחנו רוצים project output אז תמיד קובץ ה-execution שפיתחנו בתוכנת ה-exe ה-winform

  51. 17:46

    בסלושן היא זאת שתשתל כאן. אז אנחנו לוחצים על project output ואנחנו רואים פה את כל הפרויקטים האחרים שיש לנו בסלושן שזה רק פרויקט שנקרא סמיילי.

  52. 17:59

    אנחנו רוצים לבחור ב-primary output. פריימרי אאוטפוט זה בעצם הקובץ אקסקיושן של התוכנית עצמה. בניגוד לדוגמה לסורס פייל, שזה קבצי ה-C-Sharp שיש שאותם אנחנו לא רוצים להתקין במחשב הלקוח, כי זה די סודי, אנחנו פיתחנו את הקבוצים, אנחנו לא רוצים לתת את הסורס קוד ללקוח, אנחנו רוצים לתת לו את קובץ האקסקיושן.

  53. 18:24

    אנחנו יכולים לבחור פה כל מיני דברים אחרים, אבל ברוב המקרים מה שנרצה זה פריימרי אאוטפוט, שזה קובץ אקסקיושן. כל מה שאנחנו עושים זה אוקיי ואנחנו רואים כרגע שהתווסף פה הדבר הזה Primary Output From Smiley וזה אומר שקובץ ה-Execution שהוגדר ב-Smiley הולך להיות כאן באפליקיישן פולדר.

  54. 18:51

    בואו נוסיף איזה משהו לדסטופ. בדסטופ אנחנו רוצים קיצור דרך, זה אומר שאנחנו צריכים עכשיו לבצע המקש ימני ו-Create New Shortcut. כאן ברגע שעשינו Create New Shortcut, אז השורטקאט צריך להצביע על משהו שקיים במחשב הלקוח, ולכן נפתחת לנו תמונה של שלושת התיקיות האלה שאנחנו רואים פה,

  55. 19:19

    והוויז'ואל סטודיו שואלת אותי, איפה אתה רוצה שהשורטקאט יצביע? אתה לא יכול שהשורטקאט יצביע על משהו שקיים במחשב של הפיתוח שלי כרגע. אתה צריך שהשורטקאט יצביע על משהו שקיים במחשב של הלקוח שהולך להתקין את התוכנה, ולכן הוא מראה לי את שלושת התיקיות האלה, ואני כמובן הולך לאפליקיישן פולדר, בוחר פריימרי אאוטפוט,

  56. 19:41

    ואומר לו אוקיי, ועכשיו אני רואה שהוא נותן לי פה את השורטקאט פלוס אפשרות לתת לו שם. לדוגמה, סמיילי.

  57. 19:57

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

  58. 20:16

    מה אנחנו עושים עכשיו? דבר ראשון, מה קשי מניע לסולושן? Rebuild Solution, או הרבה פעמים עושים Clean בשביל לנקות את כל ה-DLLים וה-Executions הקודמים.

  59. 20:27

    Rebuild, מסתכלים פה ורואים Rebuild All Succeeded. וראינו שהוא עשה את זה די מהר, אבל התוכנית לא ביצעה את ה-Setup עצמו. אם אנחנו ניכנס כרגע לפרויקט ה-Setup ונבצע Open Folder in Windows Explorer, אנחנו נראה שיש לנו תקיית דיבאג וריליס, בתוך דיבאג אין כלום, בתוך ריליס אין כלום.

  60. 20:57

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

  61. 21:19

    זה כבר לוקח לו יותר זמן מבילד רגיל, אבל טיק טאק הוא הולך לסיים את זה והוא אומר לי rebuild all succeeded בואו ניכנס עכשיו לאותה תיקייה ונראה שבדיבאג יש לנו שני קבצים אחד שנקרא setup.exe ואחד setup.msi תכף נראה מה הם ברליס אין לי כלום השאלה היא האם זה נכון לעשות את ערכת ההתקנה בדיבאג אם ראיתם את הסרטון שדיבר על הדיבאג והרליס

  62. 21:49

    אז אתם יודעים שזה לא הדבר הכי נכון לעשות ערכת התקנה בתיקי הדיבאג כי תיקי הדיבאג מייצרת קבצים שנוצרים כאשר אנחנו במצב דיבאג כלומר אנחנו נמצאים בזמן הפיתוח כאשר אני מייצר ערכת התקנה המטרה שלי זה לתת למשתמש את ערכת ההתקנה בכדי שהוא יתקין אותה במחשב שלו אם הוא במחשב

  63. 22:17

    שלו אז אני רוצה לעבור לריליס ולכן שנייה לפני שאנחנו עושים ערכת התקנה כדאי לנו מאוד לעבור למצב של ריליס ואז לבצע את כל התהליך. מכה שימני על ה-Solution, Clean Solution.

  64. 22:33

    מכה שימני על ה-Solution, Rebuild Solution. אני רואה Rebuild All Succeeded. מכה שימני על ה-Setup, Rebuild. ה-Setup מתחיל לעבוד קשה. בואו נעלה לתיקיית ה-Release, ונראה שאתם רואים הוא עדיין בבנייה, setup.tmp, וברגע שהוא יסיים, הנה הוא סיים, אנחנו רואים setup.msi, עכשיו אנחנו רוצים לתת ללקוח את הקובץ הזה,

  65. 23:07

    setup.msi או setup.exe, כבר אנחנו הולכים לראות מה ההבדל ביניהם. אבל אני רוצה לעשות את זה כשאני במצב ריליסט, בכדי שזה יעבוד כמו שצריך אצל הלקוח, עם כל ההגדרות שהגדרנו עבור מצב פרודקשן ולא עבור מצב דיבאג, כפי שהוזכרו בסרטון של ההבדלים בין דיבאג לריליסט.

  66. 23:30

    טוב, מה ההבדל בין setup.exe לבין setup.msi? בואו קודם כל נדבר על setup.msi. הקיצור MSI זה Microsoft Installer. זה בעצם איזשהו קורבץ עם סיומת MSI שמשתמש באיזושהי תוכנה שצריכה להיות מותקנת במחשב שיודעת לבצע התקנות.

  67. 23:56

    התוכנה הזאת בעצם זה service כזה או תוכנה שנקראת Windows Installer וזה צריך להיות מותקן במחשב של הלקוח בלי קשר ל-setup הזה שאנחנו נותנים לו בשביל שה-setup שאנחנו נותנים לו יוכל לרוץ.

  68. 24:13

    אם יש לקוח שיש לו מחשב חדש, בוא נניח, שהוא לא התקין אף פעם את Windows Installer, את המערכת הזאת, Windows Installer, אז אנחנו לא נוכל להריץ לו קבצי MSI. אם זה המצב והיוזר אין לו את Windows Installer מותקן לו במחשב, אנחנו לא יכולים להריץ לו קבצי MSI, זאת הסיבה שיש פה עוד קובץ שנקרא setup.exe.

  69. 24:40

    setup.exe זה קובץ שמסוגל לרוץ גם אם למשתמש אין את תוכנת Windows Installer מותקנת אצלו במחשב, ומה שהsetup.exe עושה זה פותח בעצמו את setup.msi ושולף את כל ההגדרות ואת כל הקבצים שנמצאים בתוך setup.msi ומתקין אותם במחשב של הלקוח.

  70. 25:03

    זאת אומרת שאם ללקוח שלנו יש מותקן לו למחשב תוכנה כזאת מיוחדת של מיקרוסופט שנקראת Windows Installer, אנחנו יכולים להביא לו רק את הקובץ setup.msi שבתוכו יש את כל ההגדרות שהגדרנו כרגע בפרויקט הזה.

  71. 25:23

    מה ההגדרות שהגדרנו? בתוך אפליקיישן פולדר לשתול את קובץ האקסקיושן של סמיילי, בתוך היוזר דסטופ להגדיר קיצור דרך שמצביע על קובץ האקסקיושן וכל הגדרה נוספת שאנחנו הולכים בהמשך להגדיר, הכל כולל הכל, כולל קובץ אקסקיושן וכל הקבצים שאנחנו מגדירים,

  72. 25:46

    כולם נמצאים בתוך קובץ ה-setup.msi. אז אם ללקוח יש Windows Installer מותקן אצלו במחשב, אנחנו פשוט יכולים לתת לו רק את setup.msi, הוא לוחץ על ה-double-click וירוץ וזה יתקין לו.

  73. 26:01

    הוא כמובן יצטרך לעבור דרך ה-wizard עם next, next, next, אנחנו כבר הולכים לעשות את זה. אם ליוזר אין Windows Installer על המחשב, אנחנו צריכים לתת לו את שני הקבצים האלה.

  74. 26:15

    אז אם הוא ינסה להריץ את הסטאפ MSI תהיה לו איזושהי שגיאה שחסר לו Windows אינסטולר במחשב. אם הוא יריץ את הסטאפ נקודה אקזה כל יעבוד כמו שצריך והסטאפ נקודה אקזה יפתח את ה-MSI בעצמו, יתקין את הכל ויריץ לו את ערכת ההתקנה בלי שיש לו על המחשב Windows אינסטולר.

  75. 26:36

    שימו לב רק שהיוזר לא ממש אמור לדעת בכלל מה זה Windows אינסטולר, כן? אז בדרך כלל אולי כדאי שפשוט תביאו לו את שניהם, תגידו לו, תנסה להריץ מה שבא לך, או תנסה קודם את ה-MSI, אם לא יעבוד תריץ את ה-EXE, או שפשוט אתם יודעים שיש לו על המחשב Windows Installer, תנו לו רק את ה-MSI, או שתנו לו את ה-MSI והוא יגיד לכם, יש לי

  76. 26:56

    שגיאה, אז תגידו לו להוריד את Windows Installer ולהתקין, אתם כבר יכולים להסתדר עם זה. אבל חשוב שנבין מה ההבדל ביניהם.

  77. 27:04

    עכשיו אנחנו רוצים להתקין. אם אני נמצא בוויז'ל סטודיו, ויש לי את פרויקט ה-Setup, אני יכול להתקין את הפרויקט על ידי מכש ימני ו-Install או להסיר אותו על ידי מכש ימני ו-Uninstall.

  78. 27:20

    אבל זה רק אם אני נמצא בוויז'ואל סטודיו. ללקוח אין ויז'ואל סטודיו, אין לו את ה-Solution והוא לא יכול ללחוץ מכש ימני ולבחור Install/Uninstall בוויז'ואל סטודיו.

  79. 27:31

    הלקוח כמובן ילך ויריץ דאבל קליק על ה-Setup. אז בואו נעשה בדיוק את מה שהלקוח היה עושה ונראה מה מותקן לנו. אז אני לוחץ עכשיו דאבל קליק על ה-setup.msi ואנחנו רואים שערכת ההתקנה מתחילה לרוץ.

  80. 27:46

    אנחנו מגיעים לחלון ראשון שנקרא Welcome ובואו נראה מה כתוב פה, כתוב פה Welcome to the setup.setup.wizard משהו מוזר, מה זה setup.setup. אז כנראה שהחלון הזה לוקח את השם של פרויקט ה-setup הזה ופשוט שותל אותו, איך אנחנו יכולים לשנות את זה?

  81. 28:11

    תכף נראה, יש לנו פה the installer will guide you through, בלה בלה בלה, וורנינג, דברים סטנדרטיים שגם אותם אנחנו יכולים לשנות, עוד מעט נראה איך. נבצע נקסט, נגיע לחלון שאומר למשתמש, תראה, אני הולך להתקין לך את התוכנית בנתיב הזה.

  82. 28:30

    למה בנתיב הזה? אולי אפשר לשנות את זה. אז אנחנו תכף נוכל לשנות את כל הדברים האלה, אבל כרגע זה הדיפולט שהוא אומר.

  83. 28:42

    c, פרוגרם פייל, דיפולט קומפני ניים, שהוא מוזר שאנחנו בטח נצטרך לשנות. סט-אפ.

  84. 28:49

    אוקיי, לקוח יבצע נקסט או שהוא יכול לבחור מיקום אחר. נבצע נקסט. אנחנו רואים Confirm Installation, לקוח מבצע נקסט וערכת ההתקנה מתחילה לעבוד ולשלוח את קורו לקבצים למחשב של היוזר, שכרגע זה המחשב האישי שלי, לפי ההגדרות שהגדרנו עבור תוכנת הסט-אפ.

  85. 29:15

    אז הנה אנחנו רואים שהוא מתחיל לסיים והוא אומר לנו סיימתי הכל בסדר? קלוז. בואו נסגור, ההתקנה הסתיימה. עכשיו בואו נראה מה בעצם קרה.

  86. 29:29

    אז קודם כל אנחנו יכולים, את זה בואו נסגור, אנחנו יכולים ללכת ולחפש במחשב, בכונן C, Program Files, שם הוא אמר שהוא מתקין ב-Default Company Name, TKH Setup, בואו נחפש האם קובץ האקסקיושן נמצא פה.

  87. 29:50

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

  88. 30:04

    אז בואו נוריד פה את הכל ונגיע לדסטופ, ונראה אכן שיש פה איזשהו קובץ קטן שהתווסף, דאבל קליק עליו, מריץ לי את קובץ אקסקיושן. מעולה. שימו לב רק שיש לו איזשהו אייקון דיפולט, וכנראה שאנחנו יכולים להגדיר לו אייקון משלנו.

  89. 30:24

    אז דבר ראשון אנחנו ראינו איך בדיוק אנחנו יכולים להגדיר את המינימום בשביל להתקין משהו במחשב הלקוח. אם הלקוח ירצה להסיר את זה הוא יצטרך ללכת לקונטרול פאנל, יצטרך ללכת ל-add remove programs, לא משנה איזה מערכת ההפעלה, programs and features וכולי, להציג את כל התוכנות שיש לו כרגע במחשב,

  90. 30:54

    לאתר את התוכנה הזאת שנקראת במקרה שלנו סמיילי ולמחוק. אולי לקוח לא יודע איך עושים את זה. כדאי לנו להגדיר בעצמנו איזשהו קובץ עשרה.

  91. 31:06

    Uninstalled כזה. גם את זה, בואו נראה איך אפשר לעשות. אז פה אנחנו רואים כרגע את כל הקבצים שמותקנים, ואם נחפש פה קובץ שנקרא סמיילי, אפילו לא, אנחנו לא רואים סמיילי, אנחנו רואים קובץ שנקרא סטאפ.

  92. 31:26

    אז בואו נסיר אותו, רימוב, שזה גם משהו שכדאי לנו לשנות, שייקרא סמיילי או משהו כזה. נגיד לו yes, בוא תסיר לי את הקובץ הזה, בבקשה אנחנו רואים שהעשרה מתבצעת בואו נסתכל אם הוא מסיר לנו את הקובץ הזה קיצור הדרך ורגע שהוא יסיים וגם אנחנו רוצים לראות אם הוא הסיר לנו את התיקייה מפה גם 5. אז כבר אנחנו רואים שהוא העלים

  93. 31:54

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

  94. 32:22

    בסדר, כאן אנחנו רואים שהוא מסיים, מעולה, אחלה. בואו נסגור, נחזור בחזרה לאפליקציה וכעת מה שאנחנו צריכים לראות זה סדרה של הגדרות שאנחנו יכולים להגדיר עבור קובץ הסטאפ כדי שההתקנה תהיה עוד יותר מקצועית, הגדרות כמו אייקונים ותמונות ומה קורה אם אנחנו רוצים להסיר דברים ו-uninstall וישנם המון הגדרות שאנחנו יכולים להוסיף לערכת ההתקנה

  95. 33:00

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

  96. 33:26

    מאוד שכדאי לנו מאוד להגדיר בכדי שההתקנה תהיה עוד יותר מקצועית ועוד יותר טובה ורק אחרי שאני אסיים את כל ההגדרות האלה שכמובן אתם הולכים לראות את כולם אז נבצע עוד התקנה אחת ונראה שכל ההגדרות נכנסו לתוקף אז בואו נראה דבר ראשון מה שהייתי עושה הייתי הולך לפרופרטיז של תוכנת הסמיילי של התוכנה שאנחנו כותבים ודבר ראשון והכי חשוב הייתי מסתכל

  97. 33:56

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

  98. 34:24

    ומה הגרסה. ואנחנו רואים שבידיפולט הוא נותן לנו .NET Framework 4 Client Profile. לא יודע אם זה הפריימוורק הכי נכון. אני בדרך כלל לוקח פריימוורק 4 או 4.5, אם יש לי 4.5.

  99. 34:40

    Client Profile הוא יותר מדי אנמי ומכיל פחות דברים ממה שכדאי לנו בדרך כלל לעשות כשאנחנו מתעסקים עם פרויקט קליינט. אז אני משנה ל-Framework 4, אומר לו yes.

  100. 34:53

    ודבר על זה בכלל הייתי אמור לעשות כשהתחלתי לתכנת את פרויקט הווינפורם. הדבר הראשון שהייתי אמור לעשות זה להגדיר את הפריימוורק המתאים. אבל הגענו לשלב הזה שאנחנו רוצים לראות כרגע את כל ההגדרות, אז אנחנו רואים, ההגדרה הראשונה זה ההגדרה של הפריימוורק.

  101. 35:16

    שימו לב שרק אם אנחנו משנים את הפריימוורק אנחנו רואים שהוא מצרף לנו פה קובץ שנקרא AppConfig שאמור להיות בכל מיני הגדרות קונפיגורציה, והוא שם לנו בתוך הקובץ הזה רק הגדרה אחת.

  102. 35:28

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

  103. 35:45

    אז דבר ראשון זה הגדרה של הפריימוורק. הדבר השני שהייתי מגדיר זה קודם כל את ה-Assembly Name, איך קובץ האקסקיושן נקרא?

  104. 35:58

    סמיילי זה מתאים לי במקרה הזה. אם התוכנית שלי הייתה סמיילי אקזמפל והייתי רוצה להגדיר סמיילי, אז הייתי צריך לכתוב פה בדיוק את מה שהייתי צריך להגדיר.

  105. 36:09

    הדבר הבא שאני רוצה להגדיר זה אסמבלי אינפורמיישן. כאן יש כל מיני הגדרות שקשורות לקובץ האקסקיושן שהולך להיווצר. למה כדאי לנו להגדיר את כל ההגדרות האלה?

  106. 36:27

    הרבה פעמים קורה שאם יש לכם תוכנית שאתם מתקינים אותה אצל הלקוח ואין description ואין חברה אמיתית שבנתה את זה ולא רואים איזשהו trade mark, אז אנטי וירוסים שקיימים אצל הלקוח יכולים להסתכל על התוכנית ולהגיד נראה לי מוזר כל התוכנית הזאת היא חשודה לגמרי אין שמה כל מיני

  107. 36:40

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

  108. 37:07

    אז כדאי ללכת ולהגדיר. Description. Presenting a cool smiley. Company. Smiley Corporation.

  109. 37:24

    Smiley Corporation התכוונתי. Corporation. אוקיי, הפרודקט זה Smiley. קופירייטס, קופירייטס 2014, בסדר, טריידמארק, בואו נשים פה סתם איזה משהו שיהיה פה איזה משהו, טריידמארק 2014, רק בכדי שיהיו פה כל מיני דברים שאנטי וירוס לא יגיד איזה משהו חשוד כאן.

  110. 37:56

    יש לנו כאן את האסמבלי ורז'ם, את המספר של הגיוסה או של הקובץ, וכל הדברים האלה מספיקים בשביל להגדיר את ההגדרות. בסדר, בואו נעשה אוקיי, ונמשיך להגדיר כל מיני הגדרות נוספות.

  111. 38:13

    אז יש לנו כאן את ההגדרות האלה של הפריימורק, אסמבלי ואסמבלי אינפורמיישן. בואו נסגור, נחזור בחזרה לסטאפ, נבחר את פרויקט הסטאפ ונלך ונלחץ פה על פרופרטיז או מכש ימני פרופרטיז.

  112. 38:40

    ליתר דיוק, מכש ימני פרופרטיז פותח לי את הקובץ הזה שאני לא רוצה להתעסק איתו כרגע, הפרופרטיז האלה, זה מה שאני מחפש.

  113. 38:53

    כאן יש לנו סדרה של מאפיינים שקשורים לפרויקט הסטאפ. בטעות לחצתי על משהו אחר, בואו נחזור, סטאפ. יש לנו פרופרטיז.

  114. 39:10

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

  115. 39:36

    המוצר עצמו בואו נניח שאנחנו מכללת פרקטיק יו פרקטיק יו קולג' והאוטור דסקריפשן מה בעצם אנחנו רוצים לעשות דיספליי קול סמיילי מה בעצם אנחנו עושים בואו נראה מה עוד כדאי לנו להגדיר מניופקטורר מי בעצם זה שמייצר מי היצרן איזה חברה?

  116. 40:12

    בוא נניח פרקטיק U. מניפקטורר URL. מה הטובת URL או אתר אינטרנט של החברה? כדאי מאוד שיהיה לנו, שנראה כאילו אנחנו מקצוענים, ואנחנו אכן מקצוענים.

  117. 40:27

    http://www.prakticku.com. בואו נראה מה עוד אנחנו יכולים. Product Name זה כבר לא Setup. Product Name זה סמיילי. Subject, סמיילי, פרזנטר, ספורט URL, בואו ניקח את אותו ה-URL נכניס

  118. 40:59

    סלאש ספורט טייטל סמיילי ויש לנו כאן גרסה של הסטאפ עוד כל מיני דברים פחות חשוב לנו להתעסק איתם כאן אנחנו רואים שיש פה טארגט פלטפורם לאן בדיוק הסטאפ מיועדת x86 אומר שאנחנו יכולים להתקין את זה על מערכת הפעלה שנחשבת 32 סיביות x64 זה מערכת הפעלה שהיא 64 סיביות שבהרבה מהם

  119. 41:38

    זה תקף גם ל-32 סיביות. אז אנחנו כרגע נשאיר את זה על x86 כי זו המערכת הפעלה שיש לי פה כרגע ולכן נריץ את זה בצורה כזאת. אחרי שהגדרנו את כל ההגדרות האלה אנחנו כבר ביותר הגדרות נכונות מבחינת הסטאפ.

  120. 41:58

    הדבר הבא שאני רוצה להגדיר זה מקש ימני על ה-application folder ובחירה ב-properties. כאן מה שאנחנו רואים זה משהו שראינו מקודם, איפה הדיפולט לוקיישן של התקנת הסטאפ. ואנחנו ראינו שההתקנה אוטומטית עברה למשתמש שהיא מתקינה את עצמה בפרוגרם פייל ואז מניופקטורר מתאר את דיפולט קומפני ניים. אם אתם זוכרים מקודם שינינו מניופקטורר מדיפולט קומפני ניים

  121. 42:38

    לפרקטיק יו או משהו כזה. אז product name. זאת הסיבה שכשאנחנו התקנו את התוכנית מקודם, היא הותקנה בפרוגרם files ואז היה כתוב default company name ואז היה כתוב setup.

  122. 42:55

    אנחנו עכשיו הולכים לבצע את הדבר הבא. אנחנו הולכים למחוק את הדבר הזה של המניפקטורר וזה אומר שה-setup הולכת להיות מותקנת בתוך פרוגרם files ושם הוא הולך לו לשלוף את מה שכתוב בproduct name.

  123. 43:17

    בואו נראה שוב מה כתוב בפרודקט ניים. נחזור לסטאפ, נגדיר פרופרטיז ונחפש פה את הפרודקט ניים ונראה שהפרודקט ניים זה סמיילי.

  124. 43:29

    מה שהגדרנו פה זה הפרודקט ניים. זאת אומרת שאם אנחנו חוזרים עכשיו להגדרה הזאת של מה המיקום של האפליקיישן פולדר, אז אנחנו נראה שהוא יתקין את זה בתוך פרוגרם פיילס בתיקייה שנקראת סמיילי ובדיוק מה שמתאים לנו.

  125. 43:48

    אחרי ההגדרה הזאת אנחנו רוצים ללכת ולהסתכל רגע על קובץ הקיצור דרך. ואנחנו רואים במאפיינים שהקיצור דרך נפתח במקרה הזה ב-Desktop, ב-User Desktop, וכשאנחנו ראינו שהוא מותקן לא היה לו אייקון.

  126. 44:12

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

  127. 44:24

    אם אנחנו באים ואומרים, כן, אנחנו רוצים להגדיר אייקון לקיצור דרך, אז אנחנו רואים לחצן browse, אבל אם אנחנו מבצעים browsing אנחנו מגיעים למשהו מעניין, וזאת תמונת התיקיות שקיימת במחשב של הלקוח שהולך לבצע את ההתקנה, ולא תמונת התיקיות במחשב הפיתוח שלנו כרגע.

  128. 44:51

    אז אם אתם חושבים שכל מה שאני צריך לעשות זה לבחור האייקון מהמחשב שלי והוא אוטומטית ישלב אותו בערכת ההתקנה זה לא מה שקורה. המוצר הזה של ערכת ההתקנה אומר לנו כזה דבר:

  129. 45:04

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

  130. 45:41

    ואז נוכל ללכת לקיצור דרך ולהשתמש באייקון הזה. אבל רגע, אם אנחנו כבר מתעסקים באייקונים אז כדאי שנראה משהו הרבה יותר כללי בנוגע לאייקונים.

  131. 45:59

    קודם כל יש כל מיני מקומות שאנחנו יכולים להגדיר אייקונים בהם. חלק מהמקומות זה מקומות שקשורים לערכת ההתקלה. אבל אם אנחנו כבר מתעסקים עם אייקונים, בואו נראה את כל המקומות האלה.

  132. 46:15

    ובגלל שאנחנו הולכים עכשיו להשתמש עם איזשהו אייקון בכל מיני מקומות, כדאי שניקח את האייקון הזה ונשים אותו ב-resources של האפליקציה, מה שכבר למדנו בעבר.

  133. 46:30

    אנחנו יכולים לגשת פה ל-resources ולהגדיר שאנחנו רוצים ללכת ולהתעסק כרגע עם resource שהוא אייקון, להוסיף קובץ חדש, הכנתי כאן בדסטופ תיקייה שבתוכה יש אייקון שנקרא smiley.ico ואני רוצה כרגע קודם כל לצרף את האייקון הזה ל-resources של קובץ האקסקיושן למה אני רוצה אותו בקובץ האקסקיושן כי אני רוצה להשתמש איתו בתוך קובץ

  134. 47:09

    האקסקיושן בכל מיני מקומות אני רואה שהשם שלו זה smiley מעולה אני רואה שנפתחה לי פה תיקיית ה-resources ובתוכה הוא עתק ה-smile יווה. אם אנחנו נסתכל על התיקייה עצמה נראה שהיא תיקייה שהתווספה לפרויקט שלנו והאייקון הוא עתק לתוכה.

  135. 47:31

    הדבר הזה מגדיר שהאייקון הזה קיים במקום אחד ויחיד ואני יכול בכל מיני מקומות להשתמש איתו. אז בואו נראה כל מיני מקומות שאנחנו יכולים להגדיר אייקון עבורם.

  136. 47:46

    בואו נחזור לטופס ונראה שפה יש לנו אייקון ברמת הטופס. אנחנו יכולים לגשת לפרופרטיז, אנחנו רואים פה אייקון של הטופס, ולבחור את האייקון המתאים, לא מתיקיית הטמפ, אלא מהתיקייה של ה-resources.

  137. 48:10

    בואו ניגש, אנחנו בסט-אפ, סט-אפ אקזמפל, זו התוכנית שלנו. אנחנו נמצאים בפרויקט סמיילי, תיקיית ריסורסס. הנה הסמיילי, נבצע אופן, ואנחנו רואים שהאייקון הזה התווסף לטופס.

  138. 48:30

    קודם כל מקום ראשון שאנחנו יכולים להגדיר בו אייקון זה על הטופס. המקום הבא שאנחנו ראינו בעבר שניתן להגדיר בו אייקון זה רכיב Notify אייקון שמתאר בעצם אייקון קטן שמופיע באייקון טרייפו למטה.

  139. 48:52

    כאן אנחנו יכולים ללכת ולהגדיר טקסט, סמיילי, ולהגדיר אייקון, שוב פעם מאותו המקום. תיקיית ריסורסרס, אנחנו יכולים לראות שזאת התיקייה.

  140. 49:09

    נבחר את האייקון הזה, נגיד לו open וכעת לקובץ האקסקיושן שלנו יש Notify אייקון. בואו נבצע סייבינג. דבר הבא, ואנחנו יכולים לגשת ל-properties של כל פרויקט האקסקיושן, לגשת לכרטיסייה אפליקיישן ולראות שגם כאן יש משהו שנקרא אייקון.

  141. 49:37

    מה זה? זה האייקון עצמו של קובץ האקסקיושן עצמו. קובץ האקסקיושן גם מכיל אייקון ואם אנחנו עכשיו נבצע Clean Rebuild וניצור קובץ אקסקיושן ואז ניכנס ונחפש את קובץ האקסקיושן עצמו שימו לב שאנחנו במוד של Release נבצע Open Folder לכן אנחנו צריכים לגשת ל-Bin Release אנחנו רואים שיש פה איזשהו דיפולט אייקון.

  142. 50:13

    אייקון כזה משעמם כאילו לאפליקציה שלנו אין באמת אייקון שאנחנו הגדרנו. אם אנחנו עכשיו הולכים ובוחרים כאן את אותו האייקון, אנחנו יכולים כמובן גם אייקונים אחרים, כן? לא חייבים את אותו אייקון בכל מקום.

  143. 50:29

    אבל בגלל שזה האייקון שלנו, של ה-smiley, אנחנו משתמשים איתו. נבצע שמירה, שוב פעם נבצע Clean Rebuild, נחזור בחזרה לתיקייה של קובץ ה-execution, ושימו לב שעכשיו קובץ ה-execution מכיל את האייקון המדליק הזה של ה-smiley.

  144. 50:50

    בסדר? אנחנו רואים את האייקון פה בכל מקום, כולל כאן ב-Tray Icon, System Tray הזה, שבמגש של ה-Icon הזה נקרא בעברית צלמית. בסדר, זה מקום שלישי שאנחנו יכלנו להגדיר בו אייקון.

  145. 51:11

    כעת אנחנו יכולים לגשת ולחזור לערכת ההתקנה, לגשת ל-Application Folder ולצרף כאן קובץ רגיל, שוב פעם מה-Resources, נראה שזה באותו מקום, נבצע אופן ונראה שעכשיו יתווסף האייקון הזה לאפליקיישן פולדר, כלומר לאותה תקייה שהמשתמש יתקין בסופו של דבר את האפליקציה בה.

  146. 51:41

    אנחנו רואים גם כאן את האייקון הזה ועכשיו אנחנו יכולים לגשת לבחור את קיצור הדרך, ללכת לפרופרטיז, ללכת לאייקון שלו, browse, עוד browse, להיכנס לאפליקיישן פולדר ולבחור את האייקון.

  147. 52:03

    נבצע אוקיי, אנחנו רואים אותו פה, נבצע אוקיי וכעת יש אייקון לקובץ האקסקיושן או ליתר דיוק לקיצור דרך של קובץ האקסקיושן שיופיע בדסטופ.

  148. 52:21

    אם אנחנו כבר כאן בואו נלך ל-users programs menu ונייצר תיקייה ונקרא לתיקייה הזאת סמיילי ובתוכה נצרף גם כן קיצור דרך שמצביע על ה-primary output נקרא לו סמיילי וגם לו

לקורס המלא: קורס WinForms אונליין

ההרצאה הקודמת: מצב Debug מצב Release

ההרצאה הבאה: ערכת התקנה - ClickOnce - ביצוע Publish

הרצאות קשורות מקורסים אחרים

  • TestNG Setup
  • הגדרה ושימוש ב-Suite Setup
  • התקנה
  • התקנה של DC

קורסים נוספים במסלול

  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C
  • קורס WCF - תקשורת למתקדמים בדוט-נט