Inno Setup を使用してソフトウェアのインテリジェント アップグレード更新パッチを作成する方法を教えてください。

Inno Setup を使用してソフトウェアのインテリジェント アップグレード更新パッチを作成する方法を教えてください。

ソフトウェアの複雑さとサイズが増大するにつれて、従来の完全なソフトウェア更新はますます時間がかかり、労力もかかります。ユーザー エクスペリエンスを向上させ、リソースの消費を削減するために、アップグレード パッチを作成することが一般的な更新戦略になっています。アップグレード パッチには、新バージョンと旧バージョンの違いのみが含まれています。ユーザーは、これらの違いをダウンロードしてインストールするだけで、ソフトウェアの更新が完了します。これにより、貴重な時間と帯域幅が節約されるだけでなく、ソフトウェアの更新がより効率的かつ便利になります。

Inno Setup を使用してソフトウェアのインテリジェント アップグレード パッチを作成する方法

Inno Setup を使用してアップグレード パッチを作成する場合、次のコード例を使用して、古いバージョンのインストール パスを取得し、更新インストール用の新しいリソースをパッケージ化できます。

上記のスクリプトを .iss ファイルとして保存し、Inno Setup Compiler を使用してコンパイルしてください。このコードは、インストーラーが ssInstall ステップまで実行されたときに古いバージョンのインストール パスを取得し、新しいバージョンのファイルを古いバージョンのインストール パスにコピーして更新します。

 [設定]
AppName=あなたのアプリ名
アプリバージョン=2.0
デフォルトディレクトリ名={pf}\YourAppName

[コード]
定数
 OldVersionRegPath = 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppId")}_is1';
 OldVersionInstallLocationKey = 'インストール場所';

関数 GetOldVersionInstallPath: 文字列;
var
 RegValue: 文字列;
始める
  RegQueryStringValue(HKLM、OldVersionRegPath、OldVersionInstallLocationKey、RegValue)でない場合は
  RegQueryStringValue(HKCU、OldVersionRegPath、OldVersionInstallLocationKey、RegValue);

 結果 := RegValue;
終わり;

手順 CurStepChanged(CurStep: TSetupStep);
var
 OldInstallPath: 文字列;
始める
  CurStep = ssInstallの場合
  始める
  古いインストールパス:= GetOldVersionInstallPath;

   DirExists(OldInstallPath)の場合
   始める
    // 新しいファイルをコピーして古いバージョンを置き換えます
   FileCopy('NewFiles\*', OldInstallPath, False, True);
   終わり;
  終わり;
終わり;

サンプルコード分析の更新

このコードは、ソフトウェアのインストールと更新に使用される Inno Setup スクリプトです。

まず、[Setup] セクションでは、アプリケーション名、バージョン番号、デフォルトのインストール ディレクトリを定義します。

  • AppName は、アプリケーションの名前を「YourAppName」として定義します。
  • AppVersion はアプリケーションのバージョン番号を「2.0」と定義します。
  • DefaultDirName は、デフォルトのインストール ディレクトリを "{pf}\YourAppName" として定義します。ここで、"{pf}" はシステムの Program Files ディレクトリを表します。

いくつかの関数とイベント処理関数は、[Code] セクションで定義されています。

const は、古いバージョンのソフトウェアのインストール パスを取得するために使用される定数 OldVersionRegPath と OldVersionInstallLocationKey を宣言します。

  • GetOldVersionInstallPath 関数は、レジストリを照会してソフトウェアの古いバージョンのインストール パスを取得するために使用されます。
  • CurStepChanged は、インストール プロセスの各ステップが変更されたときにトリガーされるイベント ハンドラーです。

CurStep が ssInstall の場合、現在のステップがインストール操作であることを示します。

  • このイベント処理関数では、まず GetOldVersionInstallPath 関数を呼び出して、ソフトウェアの古いバージョンのインストール パスを取得します。
  • 次に、古いバージョンのソフトウェアのインストール パスが存在するかどうかを確認します。存在する場合は、ファイルのコピー操作を実行して、新しいバージョンのファイルを古いバージョンのソフトウェアのインストール パスにコピーします。

注意: 実際の状況に応じて、次の部分を変更する必要があります。

  • AppName: アプリケーションの名前。
  • AppVersion: アプリケーションの新しいバージョン番号。
  • OldVersionRegPath: 古いバージョンのレジストリ パス。
  • OldVersionInstallLocationKey: 古いバージョンのインストール パスのレジストリ キー名。
  • NewFiles\*: 新しいバージョンのファイルが配置されているディレクトリ (.iss ファイルを基準とした相対ディレクトリ)。

必ず、Inno Setup コンパイラに新しいバージョンのファイルを追加し、.iss ファイルと同じディレクトリの NewFiles フォルダに配置してください。アップグレードすると、新しいバージョンのファイルが古いバージョンのインストール パスにコピーされ、対応するファイルが置き換えられます。

<<:  なぜ 301 リダイレクトが必要なのでしょうか? URLを変更しても重量は減らないのですか?

>>:  Inno Setup を使用して 64 ビット オペレーティング システム環境コードを検出する方法を教えてください。

推薦する

ImageGlass (画像閲覧ソフト) v9.2.0.1208 中国語グリーンバージョン

ImageGlass は、Windows プラットフォーム用の無料の画像表示および管理ソフトウェアで...

Didi Animation APP (Android コミック リソース プラットフォーム) v1.9.5 VIP クラック バージョン

📱Didi Comics APPは、膨大なコミックリソースを備えたプラットフォームであり、ユーザーは...

PhotoDirector Android版(Camera Master Android版)v19.11.2 b90191120修正版

📱Android 版 PhotoDirector は、Android デバイス用の強力な写真編集およ...

One Commander (ファイルマネージャー) Pro v3.95.11.0 中国語グリーン版

One Commander は、ユーザーがファイルをより便利に管理および参照できるようにする Win...

R-Drive Image (ディスクイメージのバックアップと復元) v7.3.7304 多言語ポータブル版

R-Drive Image は、プロフェッショナルなディスク イメージのバックアップおよび復元ソフト...

WSA Pacman (Win11 APK インストーラー) v1.5.0 多言語無料版

WSA pacman は、Windows Subsystem for Android (WSA) 用...

Graphisoft ArchiCAD (3D 建築設計ソフトウェア) v28.0.3.3120 中国語クラック版

Graphisoft ArchiCAD は、建築家や設計者に、複雑な建物モデルの作成、建築図面の作成...

RollBack Rx Pro (システムリカバリと復元) v12.8.2710270711 中国語直接インストール版

RollBack Rx Pro は、コンピュータ ユーザーにシステムの復元および回復機能を提供する高...

AnyMP4 DVD リッパー (DVD 変換および抽出) v8.0.82 多言語ポータブル版

AnyMP4 DVD Ripper は、複数の機能と特徴を備えた強力な DVD リッピング ソフトウ...

Maye Lite クイック スタート ツール v12.6.0.240622 中国語グリーン版

Maye Lite は、より軽量でシンプルなクイック スタート ツールです。機能は非常にシンプルで、...

無料カウントダウンタイマー(無料カウントダウンタイマー)v5.2.0 中国語無料版

Free Countdown Timer は、ユーザーがカウントダウンするのに役立つ使いやすいソフト...

HEU KMS アクティベーター (KMS アクティベーション ツール) v50.0.0 中国語グリーン エディション

HEU KMS Activator 中国語版は、シンプルで効率的な KMS/OEM インテリジェント...

101 Education PPTのアカウントをキャンセルする方法

101 Education PPT は、教師が講義の準備をするのに適した、非常に使いやすい PPT ...

Adobe Flash Player (Flash プラグイン) v34.0.0.323 正式版

Adobe Flash Playerプラグイン中国語版(フラッシュプラグイン中国語版)は、Windo...