7

OSが64bitなら32bit DLLをProgram Files (x86)フォルダに、64bit DLLをProgram Filesフォルダにインストールしてそれぞれ登録したいです。32ビットOSならファイルを通常のプログラムフォルダにコピーして登録したいだけです。

Inno Setup でこれを行うにはどうすればよいですか? また、64bit DLL は 64bitregsvr32プログラムによって登録されますか?

これまでの私のコードは次のとおりです。32 ビット OS では問題なく動作しますが、64 ビット OS では両方のファイル セットをProgram Files (x86).

[Files]
Source: D:\..\32bit files\mylibrary.dll; DestDir: {app}; \
    Flags: restartreplace ignoreversion regserver 32bit

Source: D:\..\64bit files\mylibrary.dll; DestDir: {app}; \
    Flags: restartreplace ignoreversion regserver 64bit; Check: IsWin64

私は64BitTwoArch.iss例を見てきましたが、それは32ビットと64ビットのインストールではなく、32ビットまたは64ビットのインストールを行う方法を示しています。

4

2 に答える 2

3

{app}2 つの宛先に同時にインストールする必要があるため、変数だけでは機能しませんでした。

このようにプログラムファイルフォルダーをハードコーディングすることで解決しました

#define MyAppName "TestAPP"

[Files]
Source: D:\..\32bit files\mylibrary.dll; DestDir: {pf32}\{#MyAppName}; \
    Flags: restartreplace ignoreversion regserver 32bit

Source: D:\..\64bit files\mylibrary.dll; DestDir: {pf64}\{#MyAppName}; \
    Flags: restartreplace ignoreversion regserver 64bit; Check: IsWin64

これは私にとってはうまくいきます。このように、Windows は 32 ビット アプリの場合は 32 ビット dll を、64 ビット アプリの場合は 64 ビット dll を自動的に読み込みます。

于 2013-08-01T07:33:00.303 に答える