تغییر ورژن دات نت فریم ورک در VB.net

ms_vb

Member
سلام
من یه برنامه با ویژوال بیسیک دات نت 2010 نوشتم
هنگام ساخت این پروژه از پنجره newproject گزینه net Framework 4. رو انتخاب کردم
حالا مشکلی که وجود داره اینه که برنامه های ساخته شده روی ویندوز Xp سرویس پک 2 اجرا نمی شوند!
و برای اجرای آنها احتیاج به سرویس پک 3 میباشد
شخصی گفت که برای اجرای آنها در سرویس پک 2 باید با net Framework 3 یا 3.5 نوشته شده باشند
حالا چطور میتوانم این پروژه را روی سرویس پک 2 نصب کنم؟
یا چطور میشود ورژن دات نت فریم ورک آن را به 3 کاهش دهم؟
ممنونم از جوابهاتون
 

the_king

مدیرکل انجمن
سلام
من یه برنامه با ویژوال بیسیک دات نت 2010 نوشتم
هنگام ساخت این پروژه از پنجره newproject گزینه net Framework 4. رو انتخاب کردم
حالا مشکلی که وجود داره اینه که برنامه های ساخته شده روی ویندوز Xp سرویس پک 2 اجرا نمی شوند!
و برای اجرای آنها احتیاج به سرویس پک 3 میباشد
شخصی گفت که برای اجرای آنها در سرویس پک 2 باید با net Framework 3 یا 3.5 نوشته شده باشند
حالا چطور میتوانم این پروژه را روی سرویس پک 2 نصب کنم؟
یا چطور میشود ورژن دات نت فریم ورک آن را به 3 کاهش دهم؟
ممنونم از جوابهاتون

متاسفانه Net Framework 4.0. برای ویندوز های XP صرفا در Windows XP SP3 قابل نصبه، البته با توجه به اینکه
ویندوز XP با Net Framework 1.0. ارائه شده بود، در Visual Studio 2010 هر نسخه ای از Framework رو که
انتخاب کنید به هر حال در Windows XP باید Framework اش نصب بشه.

مرحله 1 - تغییر دادن نسخه Framework
ابتدا از کل پوشه پروژه تان جای دیگری کپی بگیرید که یک نسخه پشتیبان داشته باشید.
سپس در منوی Project ویژوال استدیو گزینه ...project name} Properties} را انتخاب کنید. زبانه Compile
را فعال کنید و پایین پنجره روی دکمه ...Advanced Compile Options کلیک نمایید.
گزینه (Target framework (all configurations را تغییر دهید.

مرحله 2 - حذف کردن Reference های اضافی
در منوی Build گزینه Rebuild پروژه تان را اجرا کنید. کامپایلر به عدم وجود یکسری Reference ایراد خواهد گرفت.
در منوی Project گزینه Show All Files را فعال کنید تا در لیست Solution Explorer همه فایل ها دیده شوند.
در پنجره Solution Explorer پوشه References را باز کنید. هر عنوانی که آیکون زرد رنگ دارد مثل System.Core
و System.XML.Linq و ... را با راست کلیک کردن و گزینه Remove حذف کنید.

مرحله 3 - حذف کردن Import های اضافی
در منوی Project ویژوال استدیو گزینه ...project name} Properties} را انتخاب کنید. زبانه References
را فعال کنید و در لیست Imported namespaces تیک References هایی که قبلا حذف کرده اید مثل
System.Linq و System.XML.Linq را بردارید و مجددا در منوی Build گزینه Rebuild پروژه تان را اجرا کنید.
اگر خطایی مربوط به Import شدن مشاهده کردید روی عنوان خطا دوبار کلیک کنید تا محل Import شدن
را نشان دهد و سطر مربوط را که مثلا Imports System.Xml.Linq است حذف نمایید.
 

ms_vb

Member
ممنونم از محبتت
بعد از تبدیل دات نت فریم ورک به ورژن 3.5 در جایی که متغیری از نوع دیکشنری تعریف کرده بودم در زمان اجرا به ایراد زیر برخورد کردم:
کد:
An error occurred creating the form. See Exception.InnerException for details.  The error is: Unable to cast object of type 'System.Windows.Forms.SplitContainer' to type 'System.ComponentModel.ISupportInitialize'.
مشکل کجاست؟
کد:
Dim DicVar As New Dictionary(Of String, Integer)
 

the_king

مدیرکل انجمن
ممنونم از محبتت
بعد از تبدیل دات نت فریم ورک به ورژن 3.5 در جایی که متغیری از نوع دیکشنری تعریف کرده بودم در زمان اجرا به ایراد زیر برخورد کردم:
کد:
An error occurred creating the form. See Exception.InnerException for details.  The error is: Unable to cast object of type 'System.Windows.Forms.SplitContainer' to type 'System.ComponentModel.ISupportInitialize'.
مشکل کجاست؟
کد:
Dim DicVar As New Dictionary(Of String, Integer)

کنترل SplitContainer یک کنترل نمایشی یه، ارتباطی با Dictionary نداره. اسم اون کنترل SplitContainer تون رو که
فرضا SplitContainer1 هست در فایل Form1.Designer.vb یا هر چی که اسم Designer فرم تون هست جستجو کنید،
ببینید همه جا با نوع System.Windows.Forms.SplitContainer استفاده شده یا نه.

اگر نتوانستید مشکل رو رفع کنید کد اون بخش از پروژه رو پیوست کنید تا بررسی کنم.
 

ms_vb

Member
خیلی ممنون از جوابتون مشکلم حل شد
فقط یه سوال، SplitContainer جایگزین نداره؟
نمیشه ازش در این ورژن استفاده کرد؟
 

ms_vb

Member
پس چرا این ایراد رو میگیره؟
 

پیوست ها

  • Test.zip
    111.6 کیلوبایت · بازدیدها: 4
آخرین ویرایش:

the_king

مدیرکل انجمن
پس چرا این ایراد رو میگیره؟

برای همین بهتون گفتم که اسم SplitContainer1 رو در Form1.Designer.vb جستجو کنید.
به خاطر اینکه در فایل Form1.Designer.vb دو سطر کد اضافی است که باید حذف بشه :
کد:
    Private Sub InitializeComponent()
        Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
[B][COLOR="Red"]        CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()[/COLOR][/B]
        Me.SplitContainer1.SuspendLayout()
        Me.SuspendLayout()
        '
        'SplitContainer1
        '

کد:
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(284, 262)
        Me.Controls.Add(Me.SplitContainer1)
        Me.Name = "Form1"
        Me.Text = "Form1"
[B][COLOR="Red"]        CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()[/COLOR][/B]
        Me.SplitContainer1.ResumeLayout(False)
        Me.ResumeLayout(False)
 

جدیدترین ارسال ها

بالا