2010-09-22 6 views
2

J'utilise Inno Setup avec deux composants: un pour les machines 32 bits et un pour 64 bits. Ceux-ci fonctionneront sous XP/Vista/Win7.Inno Setup: Désactivation de composants basés sur l'architecture PC

[Components] 
Name: Bin/32; Description: 32-bit; Types: full; Flags: dontinheritcheck 
Name: Bin/64; Description: 64-bit; Types: full; Flags: dontinheritcheck 

Actuellement:

  • Les deux composants sont cochés par défaut lors de l'exécution du programme d'installation.

Ce que je veux est:

  • Un défaut approprié (à savoir 32 bits ou 64 bits fait tic tac) en fonction de la machine de l'utilisateur.
  • Éliminer le composant inapproprié serait également un bonus.

Ce que j'ai trouvé jusqu'à présent est:

  • que je veux probablement utiliser Pascal dans la section [Code].
  • La fonction IsWin64
  • Que je pourrais vouloir utiliser un événement pour cela, mais je ne trouve pas encore quelque chose lié à mes besoins.

P.S. Malheureusement, je ne suis pas en mesure d'avoir des installateurs séparés par architecture.

Répondre

8

Vous pouvez consulter le dossier C:\Program Files\Inno Setup 5\Examples pour obtenir des exemples d'installation d'un programme pour différentes architectures à l'aide d'un seul programme d'installation.

vérifier ces fichiers

  • 64BitThreeArch.iss
  • 64BitTwoArch.iss
  • 64Bit.iss

vous pouvez utiliser quelque chose comme ça

[Components] 
Name: Bin_32; Description: 32-bit; Types: full; Check: IsX86; Flags: dontinheritcheck 
Name: Bin_64; Description: 64-bit; Types: full; Check: IsX64; Flags: dontinheritcheck 

[Code] 
function IsX64: Boolean; 
begin 
    Result := Is64BitInstallMode and (ProcessorArchitecture = paX64); 
end; 

function IsX86: Boolean; 
begin 
    Result := (Is64BitInstallMode=false) and (ProcessorArchitecture = paX86); 
end; 
+0

Merci pour me conduire le dossier Exemples. Malheureusement, cela ne fonctionne pas pour moi, car cela se passe par fichier; Je cherche une base par composant. Comme une sorte de fonctionnalité 'Check' pour les composants peut-être. – Nockm

+0

vérifier la réponse mise à jour – RRUZ

+0

Il semble que Check fonctionne dans la section [Components] – Nockm

Questions connexes