2009-09-14 10 views
10

Quelle est la meilleure façon d'utiliser InstallShield pour générer des programmes d'installation pour les environnements 32 et 64 bits? La majorité de mon application est peu-neutre (. Net, Java, fichiers de données). Je préférerais que je n'aie à emballer ces fichiers qu'une seule fois. Existe-t-il une approche standard pour réduire la maintenance des projets d'installshield? Actuellement, la seule solution que je peux trouver est d'avoir deux projets en double, où chacun des composants est marqué avec 64 bits et le répertoire d'installation par défaut défini à ProgramFiles64. Il doit y avoir une meilleure façon de faire ça!Configuration du projet Installshield 64 bits

Seule une très petite partie de mon application se soucie de la façon dont elle peut être exécutée. Nous avons quelques DLL C++ et des appels JNI qui doivent être différents. La plupart de ceci est déterminé au moment de l'exécution en vérifiant si le JRE que nous exécutons est 64 bits. Je voudrais éviter de distribuer deux fichiers de 130 Mo, et idéalement expédier un gros fichier zip qui a les deux installateurs, chacun référençant des composants communs. Dois-je créer des modules de fusion pour les choses courantes et les référencer dans chacun des projets?

Nous utilisons InstallShield 2009 (Premier) si cela est important.

Répondre

7
  • Si vous pouvez vous contenter d'avoir zéro composants 64 bits dans votre configuration, vous pouvez simplement faire une configuration 100% 32 bits, et cela fonctionnera aussi bien en 32 bits et 64- Windows peu.

  • Si ce n'est pas possible, je recommande d'utiliser les drapeaux de configuration du produit. Dans la vue "Releases", créez plusieurs configurations de produit, telles que "XP32" et "XP64". Marquez le champ Résumé du modèle, selon le cas: un comme "Intel; 1033" et l'autre comme "AMD64; 1033". Associez chacun à un indicateur de configuration de produit unique pour l'identifier, par ex. "xp32", "xp64". Ensuite, pour chaque entité, définissez l'indicateur de libération approprié. Vous pouvez définir la propriété 64 bits sur vos composants 64 bits si nécessaire; assurez-vous simplement que les fonctions que vous marquez comme "xp32" ne contiennent aucun composant 64 bits. Cela vous permettra de n'avoir qu'un seul fichier de projet InstallShield, mais de générer des versions 32 bits et 64 bits.

+0

Y at-il un moyen de définir le répertoire d'installation à une valeur différente pour chaque configuration de produit? Je ne vois aucune option pour cela. Je veux le définir à ProgramFiles dans 32 bits et ProgramFiles64 dans 64 bits de sorte qu'il apparaisse toujours à l'utilisateur final comme étant installé dans C: \ Program Files. – galuvian

+4

Dans la vue Informations générales/Propriétés du produit, définissez INSTALLDIR sur ProgramFilesFolder. Ensuite, créez une action personnalisée "Définir le répertoire" (type 35) et utilisez-la pour définir INSTALLDIR sur ProgramFiles64Folder; conditionnez-le sur VersionNT64 afin qu'il fonctionne uniquement sur les systèmes 64 bits. C'est ce que je fais pour utiliser un fichier de projet pour construire des configurations de bot 32/64 bits. –

+0

Ceci est une vieille réponse, mais j'espère que vous êtes toujours au top. Pour autant que je puisse voir, InstallShield 2014 n'a pas de champ 'Template Summary' dans la vue Releases. Comment puis-je avoir x32 et x64 à partir du même fichier ISM? – Uri

0

Si vous utilisez un seul projet d'installation 32 bits comme mentionné dans ce fil, vous pouvez rencontrer des problèmes en cours d'exécution des processus 32 bits sur les systèmes 64 bits en fonction de ce que vous faites. Comme votre installation est un processus 32 bits, le système d'exploitation suppose qu'il doit utiliser des ressources 32 bits. Sur les machines 64 bits, vous avez les deux. Par exemple, system32 et SysWOW64. (Curieusement, le system32 héberge les ressources 64 bits alors que le SysWOW64 est 32 bits.) Vous pouvez forcer le système d'exploitation à utiliser les ressources 64 bits en utilisant le redirecteur du système de fichiers SYSNATIVE. J'ai trouvé cela utile lors de la configuration de IIS en utilisant DISM.exe ou PKGMGR.exe sur Windows Server 2008R2 et 2012.

Questions connexes