Se il sistema operativo è a 64 bit, desidero installare una DLL a 32 bit nella cartella Program Files (x86)
e nella DLL Program Files
e registrarli rispettivamente. Se si tratta di un sistema operativo a 32 bit, desidero semplicemente copiare il file nella normale cartella del programma e registrarlo.Inno Setup installazione dll a 32 bit e 64 bit
Come posso farlo in Inno Setup? Anche la DLL a 64 bit verrà registrata dal programma 642 regsvr32
?
Ecco il mio codice finora. Funziona bene su sistemi operativi a 32 bit, ma su sistemi operativi a 64 bit scarica entrambi i set di file nello 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
ho guardato l'esempio 64BitTwoArch.iss
ma che dice come fare un 32bit o 64bit installare non un 32bit e 64bit installazione.
Se si desidera che entrambi i file siano installati su Windows a 64 bit e la cartella di destinazione sia diversa per ciascuno, non è possibile utilizzare lo stesso 'DestDir' per entrambi. Non c'è una soluzione "carina" per installarli in cartelle diverse, perché in realtà non è qualcosa che dovresti fare (e non puoi garantire che {app} sia comunque sotto {pf}). La soluzione migliore consiste nell'installare solo il file che corrisponde al sistema operativo o installarli entrambi nella stessa cartella con nomi file diversi. – Miral
I second cosa dice @Miral. Potresti farlo usando una serie di brutte operazioni sulle stringhe in {app}, ma non è garantito che l'utente lo installerà in {pf} in primo luogo. – Nyerguds