English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文
1Winformプログラムの自動更新は初めて行いました。自動更新のソースコードをオンラインで見つけ、その後、オンラインで見つけた方法に基づいて自分で長い時間試しましたが、最終的にはエラーがあり、他の人に调试を依頼して成功しました。以下は、自分で試行錯誤したものです。皆様の参考に、もし何か間違いがあれば、ご指正ください。8、私はIISサーバーを通じて自動更新をリリースしていますので、更新前には手動でプログラムをIISサーバーのディレクトリにコピーし、いくつかの変更を行う必要があります。これにより、クライアントが正常に自動更新できるようになります。したがって、最初のステップはIISサーバーに不慣れです(私のシステムはWindows
):
上記の方法に従って、選択した後、[確定]をクリックすると、システムが自動的にこれらの内容を追加します。
2、ウェブサイトが構築された後、更新する必要があるファイルをあなたが選んだ物理パスのファイルディレクトリに配置します。
3、自動ソースコードのダウンロード先が見つかりませんでした。必要な場合は、メールを残してください。私はメールを送信します。
4、自動ソースコード生成クラスライブラリを作成し、あなたのメインプログラムにそのクラスライブラリを参照し、以下の2つのファイルとあなたのメインプログラムを同じフォルダに配置します:
5、メインプログラムの呼び出しは、メインプログラム内でログインフォームの前に呼び出しています。プログラムの更新が必要かどうかをコントロールすることができず、そのためには、データベースにテーブルを作成するプロセスを作成する必要があります。これには、2つのフィールドが含まれます。
上図のように、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フィールド)。クライアントに配置し、3番目の図のバージョン更新フォルダーに置きます。サーバーを更新する前にこのプログラムを実行し、データベースの最新バージョンを更新します:
以上の内容は、私がお金を出して試行錯誤した、あまり進んだ方法ではありません。どうしてか、この分野に入行して間もなく、経験もないので、進んだ方法を自分で作り出せませんでした。皆様の即座な指正を歓迎します。実際の主な手順は、まずIISサーバーを構築することです。-->新しいウェブサイトを作成します-->メインプログラムファイル、更新ファイル、バージョン更新を同じフォルダーに配置します-->メインプログラムが更新プログラムを呼び出します(主に自動更新がいつ実行されるかを判断するためです)-->自動更新ファイル内のパラメータ設定を完了します-->データベース内のバージョン照合表が作成されています-->更新前にサーバー側でプログラムを覆い、自動更新xmlファイルの内容を変更し、バージョン更新を実行します-->クライアントが自分で更新を待っています
声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、このサイトは所有権を持ちません。人工的に編集されていないため、法的責任も負いません。著作権侵害の疑いがある場合は、notice#wまでメールを送ってください。3codebox.com(メールを送信する際、#を@に変更してください)で通報し、関連する証拠を提供してください。一旦確認がとりついたら、このサイトは即座に侵害疑いの内容を削除します。