اطلاع از بروز رسانی نرم افزار ساخته شده
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: دو دقیقه

برای شما هم پیش آمده که نرم افزاری را تهیه و منتشر کرده باشید و تمایل داشته باشید که استفاده کنندگان از وجود نسخه بروز شده مطلع شوند. یک راه ساده این است که اطلاعات نسخه جدید نرم افزار را داخل فایلی ذخیره کنیم و در وب سایت پشتیبانی نرم افزار قرار دهیم. حال بایستی اطلاعات این فایل را در زمان اجرای برنامه بررسی کنیم و در صورت وجود نسخه جدید از نرم افزار به کاربر اطلاع رسانی کنیم.
ابتدا فایل اطلاعات بروز رسانی نرم افزار را تهیه می‌کنیم و در وب سایت پشتیبانی نرم افزار قرار میدهیم. در اینجا از قالب Xml استفاده شده. که در آن Version نسخه در دسترس نرم افزار است و URL هم مسیر وب سایت و یا فایل بروز رسانی است. 
<?xml version="1.0" encoding="utf-8"?>
<AccountingApplication>
  <Version>1.5.2</Version>
  <URL>http://www.myappsupport.ir</URL>
</AccountingApplication>
نرم افزار را ساخته و کد زیر را در محل مناسبی کد نویسی می‌کنیم. این کد در ابتدا فایل Xml را خوانده و اطلاعات مورد نیاز را از آن دریافت می‌کند. سپس با استخراج نسخه اسمبلی برنامه و مقایسه این دو با هم از وجود نسخه جدید نرم افزار مطلع میشود.  
...
using System.Xml;
namespace CheckUpdateApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void CheckUpdate_Click(object sender, EventArgs e)
        {
            Version NewVersion = null;
            string DownloadPath = "";
            try
            {
                XmlTextReader xmlRead = new XmlTextReader("http://www.myappsupport.ir/AccUpdateVersion.xml");
                xmlRead.MoveToContent();
                string elmName = "";
                if ((xmlRead.NodeType == XmlNodeType.Element) && (xmlRead.Name == "AccountingApplication"))
                {
                    while (xmlRead.Read())
                    {
                        if (xmlRead.NodeType == XmlNodeType.Element)
                        {
                            elmName = xmlRead.Name;
                        }
                        else 
                        {
                            if ((xmlRead.NodeType == XmlNodeType.Text) && (xmlRead.HasValue))
                            {
                                switch (elmName)
                                {
                                    case "Version":
                                        NewVersion = new Version(xmlRead.Value);
                                        break;
                                    case "URL":
                                        DownloadPath = xmlRead.Value;
                                        break;
                                }
                            }
                        }
                    }
                }
                Version AppVertion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
                if (AppVertion.CompareTo(NewVersion) < 0)
                {
                    DialogResult Result = MessageBox.Show("نسخه " + 
                        NewVersion.Major.ToString() + "." + 
                        NewVersion.Minor.ToString() + "." + 
                        NewVersion.Build.ToString() + " در دسترس میباشد مایل به دانلود هستید؟", "نسخه جدید", 
                        MessageBoxButtons.YesNo,MessageBoxIcon.Question);
                    if (Result == DialogResult.Yes)
                    {
                        System.Diagnostics.Process.Start(DownloadPath);
                    }
                }
                else
                {
                    MessageBox.Show("نرم افزار بروز میباشد");
                }
            }
            catch (Exception E)
            {
                MessageBox.Show(E.Message); 
            }
        }
    }
}

به روش زیر هم نسخه اسمبلی برنامه را می‌شود تغییر داد.

سورس برنامه نمونه
  • #
    ‫۱۱ سال و ۳ ماه قبل، چهارشنبه ۱۶ مرداد ۱۳۹۲، ساعت ۲۲:۳۹

    ممنون از شما. یک روش برای اینکه مستقیما با XML Reader کار نکنیم می‌تونه استفاده از روش‌های سریالایز کردن کلاس‌ها باشه. دردسرش کمتره.

    یک سؤال: این فلش‌های انحنا دار رو با چه برنامه‌ای ایجاد کردید؟

    • #
      ‫۱۱ سال و ۳ ماه قبل، پنجشنبه ۱۷ مرداد ۱۳۹۲، ساعت ۰۵:۰۴
      با تشکر از توجه و راهنمایی شما. نرم افزارهای زیادی برای این کار وجود داره ولی من خیلی وقته از Snagit و Snagit Editor استفاده میکنم. این نرم افزار بیشتر برای فیلم و عکس گرفتن از دسکتاب استفاده میشه ولی امکانات فراوانی دیگری هم در این نرم افزار وجود داره. من خودم نسخه Snagit 11.2.1 را از سایت http://www.softgozar.com  دانلود کردم.
  • #
    ‫۱۱ سال و ۲ ماه قبل، شنبه ۹ شهریور ۱۳۹۲، ساعت ۱۴:۰۴
    سلام
    میخواستم بدونم فرق File Version و Assembly Version چیه؟
    • #
      ‫۱۱ سال و ۲ ماه قبل، یکشنبه ۱۰ شهریور ۱۳۹۲، ساعت ۰۲:۴۲
      Assembly Version برای مصرف کنندگان اسمبلی شما مهمه (و فقط در دنیای CLR دارای اهمیت هست). مثلا شخصی ارجاعی به اسمبلی نگارش خاصی داره. AssemblyFileVersion در قسمت خواص فایل در ویندوز قابل مشاهده است و بیشتر برای برنامه‌های ست آپ مفیده. اطلاعات بیشتر