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 ビット オペレーティング システム環境コードを検出する方法を教えてください。

推薦する

DaVinci Resolve Studio (DaVinci カラーグレーディング ソフトウェア) v18.6.6.7 中国語クラック版

DaVinci Resolve Studio は、強力な機能と優れたパフォーマンスを備えたプロフェッ...

シンプル スクリーン レコーダー (デスクトップ ビデオ録画ツール) v1.3.4 中国語グリーン バージョン

Simple Screen Recorder は、Linux オペレーティング システムで記録できる...

Win10 v22H2 (19045.3448) マイナーな修正と若干の簡素化されたバージョン

Win10 Lite エディション、Win10 Pure エディション、Win10 22H2 Lit...

QuickTextPaste (クイックテキスト貼り付けツール) v9.11 多言語ポータブル版

QuickTextPaste は、テキストをすばやくコピーして貼り付けるためのツールです。これにより...

Notepad Next (高速で軽量なテキストエディタ) v0.10 中国語グリーンバージョン

Notepad Next は、Windows 10 オペレーティング システム用の高速で軽量なテキス...

AOMEI Backupper (アオメイ バックアップパー) v7.4.2 中国語直接インストール版

AOMEI Backupper は、ユーザーが重要なデータを簡単にバックアップおよび復元できるように...

マウス クリッカー (自動マウス クリック ツール) v2.3.7.6 中国語無料版

Mouse Clicker は、自動化されたマウス クリック ツールです。主な特徴1. 自動クリック...

米国マイクロソフト社の開発の歴史を簡単にご紹介します

Microsoft の最初のオペレーティング システムは Windows ではなかったことをご存知で...

ImgTool (画像漂白および背景除去ツール) v0.8.8 中国語グリーンバージョン

ImgTool は、背景が純白ではない一部の写真に対して、背景の漂白や削除などの操作を実行できます。...

Chrome ブラウザ アプリ (Google ブラウザ モバイル版) v116.0.5845.114

📱Google Chrome モバイル版、Chrome ブラウザ Android 版、Google...

ExifToolGui (画像のメタデータ情報の表示と編集) v6.3.0 中国語版

ExifToolGui は、画像、オーディオ、ビデオ ファイルのメタデータ情報を表示、編集、削除する...

ハイエンドグラフィックカードをどのように定義しますか?価格はいくらですか?

PC ゲーム、暗号通貨、ビデオ編集、3D モデリングに興味がある場合は、おそらくハイエンドのグラフ...

WimTool (.wim ファイルの解凍と作成) v1.6.2024.1111 中国語グリーン版

WimTool は、Windows オペレーティング システム用に設計された多機能ディスク イメージ...

ASCOMP PDF Conversa (PDF 変換ツール) Pro v3.011 ポータブル版

ASCOMP PDF Conversa は、PDF ファイルを編集可能な Word 文書に変換し、元...

CoolUtils Total PDF Converter v6.5.0.340 多言語ポータブル版

CoolUtils Total PDF Converter は強力な PDF ファイル変換ツールです...