NHẬN ĐẶT QUẢNG CÁO TẠI ĐÂY

[C#] Auto Update Application Winform

Hi mọi người, hôm nay có một chị bình luận hỏi về vấn đề update trực trên ứng dụng không phải open ra webbrowser để tải bản cập nhật về như bài viết này https://www.hung.pro.vn/2023/09/csharp-visual-basic-auto-updater.html

Sau một hồi tìm kiếm thì mình phát hiện ra bài viết này, cũng khá hay về vấn đề trên nên mình viết lại chia sẽ cho người dùng được hiểu rỏ hơn về việc update.

Khi các bạn phát triển và thiết kế phần mềm, thì công việc cập nhật phần mềm rất cần thiết cho người dùng cuối, đối với những ứng dụng của bạn cung cấp ra ngoài mạng internet hoặc mạng LAN.

[C#] Tự động cập nhật phần mềm khi có phiên bản mới trong lập trình Winform

Nếu phần mềm của bạn bị lỗi, hay bạn muốn cập nhật tính năng nào mới, bạn chỉ cần copy những file cập nhật mới lên một web server hoặc ftp server.

Khi người dùng, mở ứng dụng lên, sẽ báo cho người dùng biết có phiên bản mới, nếu người dùng bấm OK, phần mềm sẽ tự động tải về và cập nhật.

Demo ứng dụng tự động cập nhật phần mềm C# Winform:

Trong bài viết này mình sẽ giới thiệu đến các bạn thư viện AutoUpdater.NET.

Với thư viện này, các bạn sẽ dễ dàng tích hợp module cập nhật ứng dụng cho App của mình.

Đầu tiên, các bạn cần import thư viện AutoUpdater.NET vào project bằng Nuget Console, phiên bản hiện tại là 1.6.3
PM> Install-Package Autoupdater.NET.Official -Version 1.6.3

Để xây dựng module này các bạn tạo cho mình 1 file update.xml với nội dung như sau và sau đó copy lên Server Web của mình nhé.
<?xml version="1.0" encoding="UTF-8"?>
<item>
    <version>2.0.0.0</version>
    <url>https://laptrinhvb.net/TestAutoUpdate.zip</url>
    <changelog>https://laptrinhvb.net</changelog>
    <mandatory>false</mandatory>
</item>

  • Version: 2.0.0.0 là để cho máy client đọc phiên bản mới nhất để so sánh với phiên bản hiện tại.
  • url: là đường dẫn để cho thư viện tải phiên bản cập nhật về và tự động giải nén.
  • Các bạn nhớ nén thành file .ZIP nhé
  • Changelog: đường dẫn đến website hoặc file html để thông báo cho người dùng phiên bản mới có những tính năng nào mới hoặc fix bug gì.
  • Mandatory: nếu bạn set = true, thì bắt buộc người dùng phải cập nhật phần mềm, bỏ qua skip update

Và dưới đây là source code ứng dụng tự động cập nhật phần mềm C#, Winform:

using AutoUpdaterDotNET;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TestAutoUpdate
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
            System.Diagnostics.FileVersionInfo fvi = System.Diagnostics.FileVersionInfo.GetVersionInfo(assembly.Location);
            AutoUpdater.CheckForUpdateEvent += AutoUpdaterOnCheckForUpdateEvent;
            string version = fvi.FileVersion;
            label1.Text = "Phiên bản: " + version;
            AutoUpdater.DownloadPath = "update";
            System.Timers.Timer timer = new System.Timers.Timer
            {
                Interval = 15 * 60 * 1000,
                SynchronizingObject = this
            };
            timer.Elapsed += delegate
            {
                AutoUpdater.Start("https://laptrinhvb.net/update.xml");
            };
            timer.Start();
        }      

        private void AutoUpdaterOnCheckForUpdateEvent(UpdateInfoEventArgs args)
        {
                if (args.IsUpdateAvailable)
                {
                    DialogResult dialogResult;                  
                    dialogResult =
                            MessageBox.Show(
                                $@"Bạn ơi, phần mềm của bạn có phiên bản mới {args.CurrentVersion}. Phiên bản bạn đang sử dụng hiện tại  {args.InstalledVersion}. Bạn có muốn cập nhật phần mềm không?", @"Cập nhật phần mềm",
                                MessageBoxButtons.YesNo,
                                MessageBoxIcon.Information);
                     
                    if (dialogResult.Equals(DialogResult.Yes) || dialogResult.Equals(DialogResult.OK))
                    {
                        try
                        {
                            if (AutoUpdater.DownloadUpdate(args))
                            {
                                Application.Exit();
                            }
                        }
                        catch (Exception exception)
                        {
                            MessageBox.Show(exception.Message, exception.GetType().ToString(), MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                        }
                    }
                }
                else
                {
                    MessageBox.Show(@"Phiên bản bạn đang sử dụng đã được cập nhật mới nhất.", @"Cập nhật phần mềm",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

        private void button1_Click(object sender, EventArgs e)
        {
            AutoUpdater.Start("https://laptrinhvb.net/update.xml");
        }
    }
}

Chi tiết và cách sử dụng thêm các bạn có thể vào trang AutoUpdater.NET để tham khảo tài liệu của nó nhé.
Chúc mọi người thành công với thủ thuật update cho chương trình của bản thân nhé.
 
DOWNLOAD SOURCE CODE

PASSWORD UNZIP: HUNG.PRO.VN

PASSWORD UNZIP: HUNG.PRO.VN
Chúc Mọi Người Thành Công Với Thủ Thuật Trên.
Nếu mọi người có vướng mắc gì mình chia sẽ trên trang có thể gửi liên hê cho mình tại đây nhé.
Cảm ơn mọi người đã quan tâm.

3 comments:

Hoàng Văn Bình said...

chưa áp dụng nhưng thấy demo chất lượng đó e

Cát Hạ Nguyễn said...

a đang có dự đình viết chương gì sao ?

Hung Program VN said...

áp dụng để có 1 một chương trình tốt a nhé <3

NHẬN ĐẶT QUẢNG CÁO TẠI ĐÂY