[ad_1]
私のプログラムは、Program Files (x86) フォルダーにインストールされる WPF アプリです。このアプリでは、現在のアプリのバージョンとローカル フォルダー内の .msi ファイルのバージョンを比較するために 30 分ごとに呼び出されるメソッドがあります。 .msi ファイルのバージョンが最新の場合、アプリはこの .msi ファイルを実行して、次のコードを使用してバージョンを更新します。
C#
Process installerProcess = new Process(); ProcessStartInfo processInfo = new ProcessStartInfo(); processInfo.FileName = "msiexec"; processInfo.Arguments = $@"/i {msiFilePath} /q"; processInfo.Verb = "runas"; installerProcess.StartInfo = processInfo; installerProcess.Start(); installerProcess.WaitForExit();
更新後、次のコードを使用してこのアプリを再起動します。
C#
Process.Start(Process.GetCurrentProcess().MainModule.FileName);
Environment.Exit(0);
それは私の問題です:バージョンを更新した後、私のウィンドウも再起動し、再起動が完了したときにアプリが自動起動しません
私が試したこと:
呼び出した後にログを追加します インストーラープロセス.WaitForExit(); アプリが正常に更新されたことを通知しますが、ログ ファイルにメッセージが表示されません。 ログが書き込まれる前にWindowsが再起動するようです。
私が欲しいもの:私のアプリは、存在する場合は最新バージョンを更新し、更新後に自動起動できます
誰でもこの問題を手伝ってもらえますか?
解決策 1
この解決策をチェックしてください: GitHub – ravibpatel/AutoUpdater.NET: AutoUpdater.NET は、.NET 開発者が従来のデスクトップ アプリケーション プロジェクトに自動更新機能を簡単に追加できるようにするクラス ライブラリです。[^]
[ad_2]
コメント