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

推薦する

WinZip Android版(モバイル圧縮ファイル管理ソフト)v7.1.0修正版

WinZip for Android は、ユーザーがファイルを圧縮、解凍、管理するのに役立つ一連の機...

Process Lasso (プロセス最適化ツール) Pro v15.1.0.50 多言語ポータブル版

Process Lasso は、コンピュータ プロセスを管理および最適化するためのソフトウェアです。...

AIカラーマッチ(AIカラーマッチングビデオカラーグレーディングAE/PRプラグイン)v1.3直接インストール版

AI カラーマッチは、人工知能技術に基づいたカラーマッチング ソフトウェアであり、ユーザーが指定した...

カメラ FV-5 Android版(エクストリームカメラ Android版)v5.3.7修正版

📱Camera FV-5 は、Android プラットフォームでカメラの完全な手動制御を提供するプロ...

ActivePresenter (スクリーンティーチングビデオソフトウェア) Pro v9.2.1 中国語クラック版

ActivePresenter は、ビデオ プレゼンテーション、教育コース、ソフトウェア デモンスト...

Office.Files.Images (Office ドキュメント イメージ ツール) v2.61 中国語グリーン版

Office.Files.Images は、ドキュメント、スプレッドシート、プレゼンテーション、画像...

Microsoft Edge ブラウザ APP (モバイル ブラウザ) v133.0.3065.80 正式版

📱Edge ブラウザ アプリは、Microsoft がリリースした Chromium ベースのブラウ...

cPicture(画像管理ソフト)v4.5 中国語グリーンバージョン

cPicture は、ユーザーがさまざまな画像ファイルを簡単に管理および閲覧できるようにする強力な画...

PDFelement (Wondershare PDF Expert クラック版) v11.4.7.3336 中国語直接インストール版

PDFelement は、豊富な機能と強力なパフォーマンスを備えたプロフェッショナルな PDF ファ...

WeChat マルチオープンアンチ引き出しプラグイン(カスタム引き出しメッセージ)v10.3 中国語グリーンバージョン

WeChatマルチオープニングアンチ引き出しプラグインは、アンチ引き出しプラグインとマルチオープニン...

Apple macOS Big Sur 11.7.8 (20G1351) 公式イメージのダウンロード

Appleが本日、macOS Big Sur 11.7の正式版をリリースしたことが判明した。macO...

Popcorn Time Desktop (ストリーミング ソフトウェア) v0.5.1 中国語グリーン バージョン

Popcorn Time Desktop は、映画やテレビ番組を無料でオンラインでストリーミングでき...

魅力的な記事や企業ウェブサイトのコンテンツを書くにはどうすればよいでしょうか?

「ウェブサイトのコンテンツを読んでいる人は誰もいないのでは?」というのはよく言われることですが、残...

ADB AppControl (Android モバイル デバッグ ツール) v1.8.4.1 中国語グリーン バージョン

ADB AppControl は、ユーザーが Android デバイス上のアプリケーションを管理およ...

Axialis IconWorkshop(プロフェッショナルアイコン制作)v6.9.5.0 公式中国語版

Axialis IconWorkshop は、アイコンのデザイン、作成、編集に使用できるプロフェッシ...