Je crée un programme d'installation à l'aide d'InstallShield 2010 (MSI de base) qui comporte deux fonctions.Installation de fichiers dans x64 «Program Files» à partir de x86 msi
Premier long métrage se compose de:
- principale application .NET compilé comme x86,
- certains x86 natif tiers dll qui sont utilisés par l'application principale (versions x64 ne sont pas disponibles).
La deuxième fonctionnalité contient un seul composant qui est une extension pour MS Reporting Services compilé sous AnyCPU.
Pendant la séquence d'interface utilisateur, j'utilise l'action personnalisée InstallScript pour énumérer toutes les instances Reporting Services disponibles à partir des arborescences de registre x86 et x64.
L'utilisateur est invité à sélectionner l'instance sur laquelle il souhaite déployer notre extension. En fonction de l'instance sélectionnée, je vérifie le registre pour l'emplacement réel de Reporting Services dans le système de fichiers, qui est généralement quelque chose comme "C: \ Program Files \ Microsoft SQLServeur \ MSSQL.2 \ Reporting Services" et qui stocke cette valeur dans une propriété MSI. Ensuite, en utilisant l'action Définir l'annuaire, je mets le répertoire de destination d'un composant (notre extension) à la valeur de cette propriété MSI.
Tout s'installe parfaitement bien, sauf si vous avez essayé de l'installer pour x64 Reporting Services, dans ce cas les fichiers d'extension sont installés au mauvais emplacement. Même si la propriété MSI est définie pour corriger le chemin "C: \ Program Files \ MicroSoft ..." (j'ai vérifié le journal msi), il semble que le système redirige automatiquement vers "Program Files (x86)".
Y a-t-il une solution possible pour résoudre ce problème?
Quelqu'un at-il une solution pour cela? – rplusg