7

ユーザーのアーキテクチャに応じて、サブディレクトリ名「Bin32」または「Bin64」をインストールから除外するために、Inno Setup で「除外」フラグを使用します。

私が望むのは、役に立たないフォルダとそのすべてのファイルとサブディレクトリもインストールしないことだけです。

これが私の現在のルールです:

[Files]
Source: "Z:\Work\temp\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

; Exclude
Source: "*"; Excludes: "\Bin64"; DestDir: "{app}"; Flags: recursesubdirs; Check: not Is64BitInstallMode
Source: "*"; Excludes: "\Bin32"; DestDir: "{app}"; Flags: recursesubdirs; Check: Is64BitInstallMode

まず、除外ルールの先頭にある「*」が何を表しているのかよくわかりません。第二に、Bin32/64 フォルダー内のすべてのサブディレクトリで正常に動作しますが、ファイルはまだインストールされており、インストールしない方法がわかりません...

どうも。

4

1 に答える 1

13

各エントリは単一の操作であり、他のエントリの影響を受けません。それを踏まえると、次のようになります。

  1. 最初の行は、everying from をインストールしますz:\work\temp
  2. 2 行目は、32 ビット モードの場合、次のものをSourceDir除くすべてをインストールします。\Bin64
  3. 3行目は、64ビットモードの場合、次のものをSourceDir除くすべてをインストールします\Bin32

あなたSourceDir(指定されていない場合はスクリプト パス) は と同じでZ:\Work\Tempあり、基本的にすべてがインストールされた状態になると思います。

最初のエントリを複製し、Excludes(\ プレフィックスなしで) とCheckパラメータをそのエントリに移動すると、必要に応じて動作するはずです。

[Files]
Source: "Z:\Work\temp\*"; Excludes: "Bin64"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: not Is64BitInstallMode
Source: "Z:\Work\temp\*"; Excludes: "Bin32"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: Is64BitInstallMode
于 2012-05-18T14:11:36.967 に答える