2016-03-20 18 views
1

は、64ビットマシンで実行されている場合はファイルの1セットをインストールし、32ビットマシンで実行する場合は別のセットをインストールします。Inno Setup - 32ビットモードで強制実行

私は現在64ビットマシンを使用しています。だからコマンドライン引数または他の方法は、は、32ビットモードで実行してシミュレートですか?私はちょうどそれが意図したように動作するかどうかをチェックしたい。

私のコードは次のようになります。

[Setup] 
... 
ArchitecturesInstallIn64BitMode=x64 

[Files] 
Source: "Win64Data\filename.ext"; DestDir: "{app}"; Flags: ignoreversion; Check: IsWin64 
Source: "Win32Data\filename.ext"; DestDir: "{app}"; Flags: ignoreversion; Check: not IsWin64 

答えて

2

番号は32ビットシステムをシミュレートする一般的な方法はありません。

もちろん、32ビット仮想マシンを作成できます。


あなたの特定のケースでは、あなたは完全なコントロールを持っていますが、だから、コマンドラインスイッチを使用して上書きできるカスタム機能でIsWin64 functionを置き換える:

[Files] 
Source: "Win64Data\filename.ext"; ...; Check: IsWin64Overridable 
Source: "Win32Data\filename.ext"; ...; Check: not IsWin64Overridable 

[Code] 

{ @TLama's function from https://stackoverflow.com/q/14392921/850848 } 
function CmdLineParamExists(const Value: string): Boolean; 
var 
    I: Integer; 
begin 
    Result := False; 
    for I := 1 to ParamCount do 
    if CompareText(ParamStr(I), Value) = 0 then 
    begin 
     Result := True; 
     Exit; 
    end; 
end; 

function IsWin64Overridable: Boolean; 
begin 
    Result := IsWin64 and (not CmdLineParamExists('/Win32')); 
end; 
+0

を追加しましたスクリプトの例は、私の更新の答えを参照してください –

+0

。 –

関連する問題