English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод автоматического обновления Winform программы на C#

Автоматическое обновление Winform программ я делаю в первый раз, нашел исходный код автоматического обновления в Интернете, затем, основываясь на некоторых методах, которые я нашел в Интернете, пробовал долго, в конечном итоге все еще были ошибки, поэтому я потратил деньги, чтобы кто-то помог мне отладить, и вот то, что я сам вытащил, чтобы everyone мог использовать, если есть ошибки, пожалуйста, исправьте.

13. Я публикую автоматическое обновление через IIS на сервере, перед обновлением я вручную копирую программу в папку каталога сервера IIS и вношу некоторые изменения, чтобы клиент мог нормально обновляться автоматически. Поэтому первым шагом является знакомство с сервером IIS (моя система Windows 8):

Выберите способом, как показано выше, после выбора нажмите кнопку "OK", система автоматически добавит эти элементы, затем:

После того как сайт был создан, поместите написанные файлы, которые необходимо обновить, в папку файла, соответствующую выбранному физическому пути.

10. После того как сайт был создан, следующим шагом будет обновление сайта, то есть обновление файлов с сервера на клиент,至于 конкретный процесс и основная идея я не буду обсуждать, это можно найти в Интернете.

9. Адрес скачивания автоматического исходного кода найти не удалось, если вам это нужно, оставьте адрес электронной почты, и я отправлю вам.

8. Создайте библиотеку автоматического генерации исходного кода, затем в вашем главном программном обеспечении ссылайтесь на эту библиотеку, поместите два файла на рисунке и ваше главное программное обеспечение в одну папку:

7. Вызов главного программного обеспечения, в главном программном обеспечении я помещаю вызов до формы входа, так как я не могу контролировать, нужно ли обновлять программу, я должен создать процесс, то есть создать таблицу в базе данных, включающую два поля

Как показано на рисунке выше, поле New используется для сохранения последней версии, а поле Old для сохранения предыдущей версии.

using Mulaolao.Forms;
using Mulaolao.Procedure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using Mulaolao.Other;
using System.Threading;
using StudentMgr;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
namespace Mulaolao
{
 static class Program
 {
  //private static Mutex mutex;
  /// <summary>
  /// Входная точка приложения.
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.EnableVisualStyles();
   Application.SetCompatibleTextRenderingDefault(false);
   //Чтение таблицы
   DataTable da = SqlHelper.ExecuteDataTable("SELECT * FROM R_UpdateforOrder");
   string news = "", old = "";
   //Если в таблице нет данных, то напрямую входите в систему, не обновляя
    if (da.Rows.Count < 1)
   {
    //Установить, чтобы форма логина закрывалась после успешной авторизации, и отображалась основная форма
    Login lg = new Login();
    lg.StartPosition = FormStartPosition.CenterScreen;
    lg.ShowDialog();
    if (lg.DialogResult == DialogResult.OK)
    {
     Application.Run(new Form1());
    }
    else
    {
     return;
    }
   }
   else
   {
    //Если в таблице一致的新版本 и старая версия, то обновление не требуется
     news = da.Rows[0]["New"].ToString();
    old = da.Rows[0]["Old"].ToString();
    if (news == old)
    {
     //Установить, чтобы форма логина закрывалась после успешной авторизации, и отображалась основная форма
     Login lg = new Login();
     lg.StartPosition = FormStartPosition.CenterScreen;
     lg.ShowDialog();
     if (lg.DialogResult == DialogResult.OK)
     {
      Application.Run(new Form1());
     }
     else
     {
      return;
     }
    }
    else
    {
     //Если в таблице不一致的新版本 и старая версия,则需要将老版本更新为新版本,同时启动自动更新窗口
      SqlHelper.ExecuteNonQuery( "UPDATE R_UpdateforOrder SET Old=@Old", new SqlParameter( "@Old", news ) );
     System.Diagnostics.Process.Start( Application.StartupPath + @"\AutoUpdate.exe" );
    }
   }
  }
 }
}

Далее, после завершения обновления автоматически запустится обновленный основной программный код.

6. Расскажите о основных параметрах UpdateList.xml:

Ниже приведен обновленный мной программный код (поле New в таблице), размещенный на клиенте, в папке обновления версий на третьем рисунке, перед обновлением сервера сначала запустите эту программу, обновите последнюю версию базы данных:

Далее, это метод, который я сам потратил деньги на разработку, не очень продвинутый,没有办法, кто бы мог подумать, что я только начал работать в этой области, у меня нет опыта, и я не могу разработать что-то продвинутое. Пожалуйста, не стесняйтесь своевременно исправлять. Основные шаги: сначала создать сервер IIS -->新建网站-->положить основные программы, обновления и версии в одну папку-->программа основного вызова обновления программы(в основном для определения времени автоматического обновления)-->настроить параметры в файле автоматического обновления-->создать таблицу соответствия версий в базе данных-->перед обновлением заменить программу на сервере, изменить содержимое файла автоматического обновления xml, запустить обновление версии-->подождать, пока клиент himself обновится

Заявление: контент этой статьи взят из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, загружен добровольно, сайт не обладает правами собственности, не прошел редактирование, не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите содержимое,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма замените # на @) для сообщения о нарушении,并提供 соответствующие доказательства. При подтверждении факта нарушения сайт незамедлительно удалят涉嫌侵权的内容.

Вам может понравиться