3

InnoSetup を使用して、WPF アプリケーションのインストーラーを作成しています。私のアプリケーションは約 300Mo です。クライアント環境に MS Framework 4.0 があるかどうかを確認するために、このメソッドを実装しました: http://www.codeproject.com/Articles/20868/NET-Framework-1-1-2-0-3-5-Installer-for -InnoSetup このメソッドは isxdl.dll を使用します。

インストーラーを起動すると、このタスクで 10 秒スタックしました (InnoSetup デバッグ モードで):

Extracting temporary file: C:\Users\Ben\AppData\Local\Temp\is-IKJ7C.tmp\isxdl.dll

この DLL は約 122Ko で、軽いです。軽いアプリケーション (約 5Mo) で同じインストーラー (同じスクリプトを使用) を作成しようとしましたが、インストーラーはうまく機能します (スタック時間はなくなりました)。

アプリケーション ファイル (アプリケーションの重量) がこの dll の読み込みにどのように影響するかはわかりません。

4

1 に答える 1

4

アクションと機能のためにインストール スクリプトによって使用される予定のすべてのファイルは、[Files]特にSolidCompression=True. それらに使用するのも良いオプションFlags: nocompression dontcopyです。

[Files]
Source: ".\ISWin7.dll"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: ".\games\{#BMPDir}\BMP\*"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: ".\InnoCallback.dll"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: ".\MyAppSourceFiles\*"; DestDir: "{app}"; Flags: ignoreversion

固定圧縮を使用することの欠点は、すべてのファイルが 1 つの圧縮ストリームに圧縮されるため、セットアップがファイルにランダムにアクセスできなくなることです。

  • これにより、最後のファイルにアクセスする前に「すべてのファイルを解凍」します。詳細はこちら
于 2013-04-04T10:47:58.317 に答える