Linux の Mac と Windows で動作する PyQt に基づくクロス プラットフォーム アプリケーションを維持しています。
Windows および Mac バージョンは、py2exe および py2app を使用して配布され、非常に大きなバンドル (~40 MB) を生成します。
ダウンロードサイズを制限するパッチに基づいて、「自動更新」機能を追加したいと思います。
- http サーバーで新しいバージョンを確認する
- 最新バージョンへの更新に必要なパッチをダウンロードする
- パッチリストを適用し、アプリケーションを再起動します
いくつか質問があります:
- 開いているファイルはロックされており、上書きできないため、Windows アプリケーションを更新するための推奨される方法は何ですか?
- パッチを準備して適用するにはどうすればよいですか? おそらくbsdiff/pspatchを使用していますか?
[アップデート]
bsdiffでパッチを作成するための簡単なクラスを作成しました。これは、サイトで宣伝されているように非常に効率的です。私のアプリの 2 つの py2exe バージョン (圧縮されていない ~75 MB) の diff は、44 kB のパッチを生成します。私には十分小さいので、この形式に固執します。
このコードは、Python コードの小さなライブラリであるpyfluの「更新」パッケージで入手できます。