3

非常にシンプルな自動アップデーターをアプリに追加したいと考えています。機能する最も単純なことから始めたいと思います。

これを行う方法の提案はありますか? 以下のオプションの改善 (または代替) の提案はありますか?

これが私が検討している1つのオプションです。

  1. アプリは、新しいバージョンをチェックすることを提案するフォームを表示し、X 日ごとに再度チェックするオプションがあります。
  2. ユーザーが「今すぐチェック」をクリックすると、Web ページ www.mysite.com/CheckNewVersion.asp?AppID=<>?AppVersion=<>が起動します
  3. ASP スクリプトには、すべてのプログラム ID と現在利用可能なバージョンのリストがあります。次に IT 部門は、「利用可能な新しいバージョンはありません」または「XYZ 機能/修正を含む新しいバージョン」(および「無料アップデート」または「ここで支払う」) というページを表示します。

これにより、自動更新の利点の 80% が、わずか 10% のコストで得られます。誰も自動更新をクリックしない場合 (人々は煩わされたくないので、その可能性があると思います)、これ以上単純化しても意味がありません。少なくとも「更新」ボタンをクリックする必要がないほど簡単にする方法はありません。

ところで、私は SO に同様の質問があることを認識していますが、実装の詳細については説明していません。それはより理論的で、より洗練されたソリューションを目指しているように見えました。

4

2 に答える 2

2

私の提案 (これらのいくつかを自分で構築した後) は、少し異なるシステムから始めることです。サーバー上の静的 XML ファイル (例: /AppVersion_[AppID].xml) を参照して、アプリケーションが内部的にチェックを実行するようにします。この xml ファイルには、現在のビルド/バージョン番号とタイムスタンプとフル パスを含む現在の公開リリースが記述されているだけです。最新のバイナリと MD5 チェックサムに。これにより、最初から多くの作業と複雑さが軽減されます。

アプリケーションは、この XML ファイルを取得して、ファイル内のバージョン情報を現在のバージョンと比較するだけです。新しい場合は、ユーザーにアップグレードを求めるわかりやすいダイアログ ボックスを表示できます。

ユーザーがアップグレードを希望する場合は、XML ファイルのパスからセットアップ バイナリを取得し、MD5 チェックサムを確認してから、シェル実行で起動します。これにより、ユーザーがファイルをダウンロードする必要がなくなり、ファイルが問題なくダウンロードされるようになります。

次の理由から、VB6 から VB.NET にアップグレードすることをお勧めします。

1) WebClient と呼ばれる .NET BCL の魔法のコントロールにより、URL の文字列の内容を 1 行の呼び出しと同じくらい簡単に取得できます。また、WebClient は 1 回の呼び出しで指定されたディスクの場所にファイルをダウンロードします。

2) 組み込みの XML サポートは素晴らしいです。

ソフトウェア製品の 1 つをダウンロードして実行する基本的な VB.NET コードを次に示します。

Dim TargetRemoteSetupFile As String = "http://www.bungalowsoftware.com/downloads.asp?programlist=/download/aphasia_tutor_1_and_2_outloud_install.exe"
Dim LocalDownloadPath As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "BungalowSoftwareInstall.exe")

Dim FileDownloaderWebClient As New System.Net.WebClient()

Try
   FileDownloaderWebClient.DownloadFile(TargetRemoteSetupFile, LocalDownloadPath)
Catch ex As Exception
   System.Diagnostics.Debugger.Break()
   '...
Finally
   FileDownloaderWebClient.Dispose()
End Try

System.Diagnostics.Process.Start(LocalDownloadPath)
于 2009-05-13T14:55:28.780 に答える
1

Mac OS X では、Sparkle フレームワークは、自動更新用のアプリで非常に人気があります。次のように動作します。

ユーザーがアプリを初めて起動すると、更新を自動的に確認するかどうか (および場合によっては確認の間隔) を尋ねられます。ユーザーが更新を確認したいと言った場合、アプリは通常、起動時に更新を確認しますが、1 日に 1 回しか確認しません。

サーバーには、利用可能なソフトウェア バージョンと、各バージョンの短い概要または変更ログを含むファイルを生成する XML ファイルまたはスクリプトがあります。利用可能なアップデートがない場合、アプリは何もしませ。ユーザーにはまったく通知されません。

アップデートが利用可能になると、アプリは新しいバージョン番号、変更ログ、および次のボタンを含む「アップデートが利用可能です」というプロンプトを表示します:「アップデート」および「このバージョンをスキップ」。

ボタンはもちろん一目瞭然です。

于 2009-05-13T14:55:00.793 に答える