سلام دوستان
با چه کدی میشه فهمید چه ورژنی version از فریم ورک framework نصب هست ؟
ممنون
سلام دوستان
با چه کدی میشه فهمید چه ورژنی version از فریم ورک framework نصب هست ؟
ممنون
آخرین ویرایش به وسیله once4ever : جمعه 11 فروردین 1385 در 17:34 عصر
خوب وقتی یه برنامه رو با .NET نوشتی و اوون برنامه داره توی یه سیستم اجرا میشه، همین نشون میده نسخه ای از .NET که نصب شده همون نسخه ایه که برنامه باهاش نوشته شده.
(البته در یکی دیگه از تاپیکهای دیگه گفته شده که نسخه های جدید می تونن نسخه های قدیمی تر رو هم پشتیبانی کنن، که اگه این طور باشه میشه فهمید نسخه ای که نصبه یا همون نسخه ایه که برنامه باهاش نوشته شده یا یه نسخه ی جدید تر).
اگر هم منظور شما اینکه قبل از اینکه برنامه اجرا بشه چه طور میشه فهمید که در این رابطه هم توی یه تاپیک دیگه صحبت شده و دوستان به نتیجه رسیدن.
موفق باشید.
مرسی ولی منظور من این نیست.
میخوام تو برنامم با کد بفهمم چه ورژنی نصب هست
همونطور که اونجا هم صحبت کردیم فریم ورک 2 هم میتونه 1.1 رو اجرا کنه. به این دلیل سوال کردم
برای اینکه بفهمی الان چه ورژنهایی از فریم ورک روی یه سیستم نصبه می تونی subkey هایی که در کلید
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramewor k\Policy
هست رو تست کنی.
می تونی این کلید رو قبلش توی رجیستری یه نگاهی بهش بکنی، به ازای هر یه ورژنی از فریم ورک که الان نصبه، یه کلید با اسم نسخه ی فریم ورک اونجا هست. مثلا v1.1 و v2.0 و ...
یعنی یکی از راههای که تو برنامه میشه فهمید چه ورژنی نصب هست اینه که تو برنامه رجیستری ویندوز بخونم.
ممنون از کمکت
آیا راه دیگه ای نیست؟ یعنی متغیری تو C#.net نیست که ورژن فریم ورک برگردونه؟
فکر نکنم. یا بهتر بگم، من تا حالا چیزی در این مورد نشنیدم.
سلام
برای تشخیص ورژن های نصب شده ، راهی که omid_Ahmadi گفتن جواب میده
اما اگه میخواید بدونید کدوم ورژن از .NET Framework در حال اجرای برنامه تونه ،
یه راه ساده وجود داره :
استفاده از کلاس System.Environment
Console.WriteLine(Environment.Version);
من با اینکه می گین 2.0 می تونه 1.1 رو هم ساپورت کنه مشکل دارم توی اون تایپیک هم گفتم ولی کسی جواب نداد. من امتحان کردم جواب نداد.
مرسی امیدجان - روش جناب احمدی قبل ازاجرای برنامه یک روش بسیار مفیدهست و روش شما داخل برنامه (چیزی که من میخواستم) - ازهردو ممنون
تنها دلیلی که میتونه برنامه ات اجرا نشه اینه که از تابعی استفاده کردی که تو ورژن 2 اون تابع به اون شکل نبوده یعنی overload ورژن 1.1 رو تو 2 اعمال نکردند.من با اینکه می گین 2.0 می تونه 1.1 رو هم ساپورت کنه مشکل دارم توی اون تایپیک هم گفتم ولی کسی جواب نداد. من امتحان کردم جواب نداد.
ولی من چندتا امتحان کردم و جواب داد. تقریبا اکثر توبع و کلاسهای معمول تو فریم ورک 2 و 1.1 به هم شبیهن.
منم اینو بدست آوردم.:
string a = System.Reflection.Assembly.GetEntryAssembly().ImageRuntimeVersion;
سلام
این کدی که آقای میر مصطفی دادن ، ورژنی از framework رو
که برنامۀ ما با اون Build شده نشون میده ، نه اون ورژنی که در حال
اجرای برنامه است.
(مثلا فرض کنید من یه برنامه ای رو در Visual Studio .NET 2003 ایجاد
کردم (یعنی در ورژن v1.1.4322 )؛ حالا این برنامه رو در یک سیستم دیگه اجرا می کنم که فقط
.NET 2.0 بر روی اون نصب هست ، در این حالت ، Environment.Version
ورژن 2.0.50727.42 رو بر می گردونه ، ولی Assembly.GetEntryAssembly().ImageRuntimeVersion
ورژن v1.1.4322 رو بر می گردونه
میشه دقیق تر امتحانش کنی یا کدی رو که امتحان میکنی رو اینجا بذاری ؟نوشته شده توسط mamadgmail