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

推薦する

Youdaoデスクトップ辞書公式オリジナル版丨最新バージョンのダウンロード丨バージョン番号9.2.0.0

Youdao辞書は、中国語、英語、日本語、韓国語、フランス語など、複数の言語の専門辞書を統合してい...

Veyon (オープンソースの電子教室管理ソフトウェア) v4.9.3.0

Veyon はもともと Linux ベースの教育用ネットワーク管理ソフトウェアでしたが、現在は W...

Maoyan ブラウザ (Chrome コア拡張ブラウザ) v5.3.1 ポータブル版

Maoyan ブラウザは、シンプルで安全な Chrome 強化ブラウザです。二次最適化のために最新の...

Wondershare UniConverter v16.3.0.159 多言語ポータブル版

Wondershare UniConverter は、AVI、MP4、FLV、WMV、MOV などを...

ASCOMP Guardian Of Data (データ保護バックアップ ソフトウェア) Pro v3.006 ポータブル版

ASCOMP Guardian of Data は、個人および企業ユーザーに適したプロフェッショナル...

Smarter Battery (ノートパソコンのバッテリー管理ソフトウェア) v8.1 ポータブル版

Smarter Battery は、Windows プラットフォーム向けに設計されたバッテリー管理ソ...

OpenAI の将来はどうなるのでしょうか? AI革命を牽引する先駆者となるか?

人工知能(AI)の概念が提案されて以来、AIは科学技術分野で最も魅力的な最先端のトピックの1つとなっ...

Zentimo xStorage Manager (USB 管理ツール) v3.0.5.1299 多言語ポータブル版

Zentimo xStorage Manager は、USB デバイス専用に設計された管理ツールです...

HxD Hex Editor (強力な 16 進エディター) v2.5 中国語無料版

HxD Hex Editor は、バイナリ ファイル、ディスク イメージ、メモリなどをすばやく表示お...

File Joiner (使いやすいファイル結合ソフトウェア) v2.4.5 中国語無料版

File Joiner は、複数のファイルを 1 つのファイルに結合できる、使いやすいファイル結合ソ...

SolveigMM HyperCam (画面録画ツール) v6.2.2404.10 中国語グリーンバージョン

SolveigMM HyperCam は、ユーザーが画面上のビデオとサウンドを簡単に記録できる強力な...

オリジナル記事がAIライティングツールを上回る様々な方法を紹介

人工知能が芸術から執筆までクリエイティブ産業に進出し続ける中、コンテンツライターは当然ながら自らのク...

1DM+ Android版(Androidダウンロード管理ツール)v17.2修正版

📱1DM+ は Android デバイス用のダウンロード管理ツールであり、ユーザーがさまざまな種類の...

WinMerge (ファイル比較ツール) v2.16.46 中国語グリーン版

WinMerge は、Windows プラットフォーム用の無料のオープン ソース ファイル比較ツール...

simplewall (オープンソース Windows ファイアウォール) v3.8.5 中国語グリーンバージョン

Simplewall は、ユーザーがコンピューター上のネットワーク接続を管理および制御し、マルウェア...