Question from .Net Tapuz forum: How to run a .Net application on specific runtime version?
שאלה:
אני מעונין להוסיף קטע קוד שבודק איזו גרסה יש ל Framework במחשב שמריץ אחת מהאפליקציות שלי.
אני יודע שיש ב VS2005 אפשרות ל ClickOne שמבצע את הפעולה ברגע שיוצרים קובץ התקנה, אבל זה לא רלוונטי בשבילי כי אני מוסר רק את קבצי האסמבלי הרלוונטים לאפליקציה.
"הפכתי את האינטרנט" כדי למצוא קוד כזה ואני פשוט לא מוצא פתרון..
אשמח לקבל דוגמא לקטע קוד ב C# שיוכל לזרוק Exception ברגע שקוד שנוצר על VS2005 מנסה לרוץ על פלטפורמה שאיננה Framework 2 (למשל Framework 1.1)
תשובה:
בקובץ הקונפיגיורציה של האפליקציה שלך יש אלמנט מעניין שלרוב לא מזכירים בשם <startup>.
באלמנט הזה ניתן לפרט אלמנט <supportedRuntime> עם גירסת הפריימוורק שבקונטקסט שלה תרוץ התוכנה שלנו.
הנה דוגמה של האלמנט:
לדוגמה, אם נרצה באפליקציית WinForms שנכתבה על Visual Studio 2005 שהיא תרוץ רק בקונטקסט של דוט נט 2.0 נשנה את קובץ ה-App.Config כך שיכיל את האלמנט בצורה הבאה:
בואו נראה דוגמה מה קורה אם נרצה להריץ אפליקציה כאשר אין למחשב את גירסת ה-Runtime שביקשנו. למשל, נבקש את דוט נט 4.0 הדמיוני.
נקבל את הודעת השגיאה הבאה בהריצת האפליקציה:
---------------------------
WinTesting.exe - .NET Framework Initialization Error
---------------------------
To run this application, you first must install one of the following versions of the .NET Framework:
v4.0.0
Contact your application publisher for instructions about obtaining the appropriate version of the .NET Framework.
קישור: http://www.tapuz.co.il/tapuzforum/main/Viewmsg.asp?forum=831&msgid=99637513