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

推薦する

ジオメトリ スケッチパッド (幾何学図形の描画と学習に使用) v5.06 コレクターズ エディション (02.25)

Geometry Sketchpad は、教師や学生が幾何学図形を描いて学習するのに適した数学ツー...

LSPatch Android バージョン (ルート化不要、Xposed モジュール) v0.6.0.402

📱LSPatch は、LSPosed コアに基づく無料の非ルート Xposed フレームワークで、...

ChatGPT Enterprise とは何ですか? 何をするのですか? また、どう違うのですか?

2023年8月28日、OpenAIは職場のアプリケーション向けにカスタマイズされたエンタープライズ...

リモート デスクトップ接続でコピー アンド ペーストが機能しない場合はどうすればよいですか?

リモート デスクトップ (MSTSC) 接続を使用してリモート コンピューターとの間でコンテンツとデ...

MouseInc2 (グローバル マウス ジェスチャ ソフトウェア) v2.13.4

MouseInc2Inc は、マウスの精度と正確性を向上させるソフトウェアです。手の不安定さや震え...

MiniTool Partition Wizard Technician (ディスク パーティション ツール) v12.9 ポータブル バージョン

MiniTool Partition Wizard は、Windows やサーバー バージョンを含む...

Midjourney AI Painting とは何ですか? また、どのように使用できますか?

世界で人工知能がますます発展するにつれて、私たちが日常生活でそれを活用できる方法も増えていきます。 ...

WinMute (自動ロック画面ミュートソフトウェア) v2.5.2 中国語グリーンバージョン

WinMute は、特定のイベントが発生したときにコンピューターを自動的にミュートするように設計され...

IsMyLcdOK (LCD 不良ピクセル検出) v5.93 中国語グリーンバージョン

IsMyLcdOK は、LCD モニターに不良ピクセル (デッド ピクセルやスタック ピクセルなど)...

BatchEncoder (オープンソースの無料オーディオコンバータ) v5.1 中国語無料版

BatchEncoder は、あるオーディオ形式から別の形式に変換できる無料のオーディオ コンバータ...

Advanced Renamer (ファイル名変更ツール) v4.08 多言語ポータブル版

Advanced Renamer は、ファイルの名前を一括変更するための強力なツールです。ソフトウェ...

USB Repair (USBデバイス修復ツール) v11.2.3.2380 中国語グリーンバージョン

USB 修復は、USB デバイスのエラー、損傷、ウイルス、その他の問題を検出して修復するのに役立つ実...

AquaSoft Stages (スライドアニメーションソフトウェア) v15.3.02 多言語ポータブル版

AquaSoft Stages は、高品質のスライドショー、アニメーション、ビデオ クリップを作成で...

Solid Converter (PDF Converter) v10.1.18270.10854 中国語直接インストール版

Solid Converter は、PDF ドキュメントを編集可能な Microsoft Word、...

Yunmeng Windows 10 デジタル著作権アクティベーション ツール v2.7.2 ビルド 241125-1

Yunmeng Windows 10 アクティベーション ツールは、Github 上の CShar...