Heim >Backend-Entwicklung >C#.Net-Tutorial >Detaillierte Erläuterung, wie die automatische Aktualisierung des c#Winform-Programms implementiert wird (Bild)

Detaillierte Erläuterung, wie die automatische Aktualisierung des c#Winform-Programms implementiert wird (Bild)

黄舟
黄舟Original
2017-03-22 11:33:112894Durchsuche

Dies ist auch das erste Mal, dass ich ein automatisches Update des Winform-Programms durchführe. Dann habe ich es selbst lange ausprobiert, basierend auf einigen Methoden, die ich im Internet gesehen habe. Ich habe immer noch Fehler gemacht, also habe ich Geld ausgegeben, um andere zu bitten, es zu tunFehlerbehebungErfolgreich, das Folgende ist, was ich gemacht habe, damit jeder daraus lernen kann, bitte korrigieren Sie mich.

Dies ist das erste Mal, dass ich ein automatisches Update des Winform-Programms durchführe. Ich habe den Quellcode des automatischen Updates gefunden und es dann lange versucht, basierend auf einigen Methoden, die ich im Internet gesehen habe Am Ende habe ich immer noch Fehler gemacht, also habe ich Geld ausgegeben, um andere zu bitten, mir beim Debuggen zu helfen. Damit jeder daraus lernen kann, korrigieren Sie mich bitte 🎜>

1. Da ich automatische Updates über den IIS des Servers veröffentliche, kopiere ich das Programm vor dem Update manuell in das Verzeichnis des IIS-Servers und nehme einige Änderungen am Client vor, um die Aktualisierung automatisch durchzuführen. Der erste Schritt besteht also darin, sich mit dem IIS-Server nicht vertraut zu machen (mein System ist Windows 8):

Folgen Sie der oben genannten Methode, wählen Sie aus und klicken Sie auf OK. Das System fügt automatisch hinzu diese Inhalte und dann:

Nachdem die Website eingerichtet ist, legen Sie die geschriebenen Dateien, die aktualisiert werden müssen, in das Dateiverzeichnis ab, das dem von Ihnen ausgewählten physischen Pfad entspricht.

2. Nachdem die Website eingerichtet ist, besteht der nächste Schritt darin, eine Möglichkeit zu finden, sie zu aktualisieren, dh die Datei vom Server auf den Client zu aktualisieren. Was den spezifischen Prozess und die zentrale Idee betrifft, werde ich es tun Ich gehe nicht auf Details ein. Es gibt viele online.

3. Die automatische Quellcode-Download-Adresse kann nicht gefunden werden. Wenn Sie sie benötigen, hinterlassen Sie bitte Ihre E-Mail-Adresse.

Generieren Sie den automatischen Quellcode im

Klassenbibliothek. Verweisen Sie dann auf die Klassenbibliothek in Ihrem Hauptprogramm und legen Sie die beiden Dateien im Bild unten im selben Ordner wie Ihr Hauptprogramm ab:

5. Beim Aufruf des Hauptprogramms stelle ich es vor das Anmeldeformular. Da ich nicht steuern kann, ob das Programm aktualisiert werden muss, muss ich einen Prozess erstellen . Es dient dazu, eine Tabelle in der Datenbank zu erstellen, die zwei Felder

enthält, wie oben gezeigt, das Feld „Neu“ dient zum Speichern der neuesten Version und das Feld „Alt“ zum Speichern der vorherige Version.

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" );
    }
   }
   
  }
 }
}

Machen Sie einfach den nächsten Schritt und das aktualisierte Hauptprogramm startet nach Abschluss automatisch.

6. Lassen Sie uns über die Hauptparameter in UpdateList.xml sprechen:

Das Folgende ist die Update-Version (Neues Feld in der Tabelle), die ich geschrieben habe . Platzieren Sie es auf dem Client im Versionsaktualisierungsordner im dritten Bild. Führen Sie dieses Programm jedes Mal aus, bevor Sie den Server aktualisieren, um die neueste Version der Datenbank zu aktualisieren:

Der obige Inhalt ist, dass ich viel Geld ausgegeben habe, um eine nicht sehr fortgeschrittene Methode zu entwickeln, aber ich kann nichts dagegen tun, da ich erst vor Kurzem in die Branche eingestiegen bin und wenig Erfahrung habe, um eine fortgeschrittene Methode zu entwickeln . Ich freue mich über alle rechtzeitigen Korrekturen. Tatsächlich sind die Hauptschritte: Erstellen Sie zuerst den IIS-Server. Erstellen Sie eine neue Website. Legen Sie die Hauptprogrammdatei, die Aktualisierungsdatei und die Versionsaktualisierung im selben Ordner ab Programm aktualisieren (hauptsächlich um zu beurteilen, wann das automatische Update durchgeführt wird) --> Konfigurieren Sie die Parameter in der automatischen Update-Datei. --> Erstellen Sie die Versionsvergleichstabelle in der Datenbank. --> , und ändern Sie den Inhalt der automatischen Update-XML-Datei. Führen Sie ein Versionsupdate aus –>Warten Sie, bis sich der Client selbst aktualisiert

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung, wie die automatische Aktualisierung des c#Winform-Programms implementiert wird (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn