Nous avons actuellement un problème majeur avec Microsoft Access Database Engine 2010. Le moteur est disponible en formats 64 bits et 32 bits, ce qui est bien. Cependant, vous devez apparemment toujours installer la version 32 bits si le processus de l'hôte est toujours 32 bits. Bien, on peut faire ça.
Notre logiciel traite un grand nombre de composants hérités en 32 bits, dont une grande partie en code VB6, qui génère un assemblage en 32 bits. Nous supposons donc que le pilote doit également être installé en 32 bits. En effet, lorsque nous installons des pilotes 32 bits sur une machine 64 bits et exécutons nos applications 32 bits, cela fonctionne correctement.
Cependant, le problème commence lorsque Office 2010 64 bits est installé sur le système. Croyez-moi, nous avons essayé de faire comprendre aux utilisateurs que Microsoft Office 64 bits est en grande partie inutile, en vain. Comme les ordinateurs sortent de la ligne d'assemblage avec les versions 64 bits installées, nous ne pouvons pas répondre aux demandes d'assistance lorsque notre logiciel casse quelque chose. Soit l’Office 64 bits rompt notre installation, soit notre version romine, mais ce n’est pas très beau. Un autre problème est que les logiciels non hérités installent parfois les pilotes 64 bits (comme il se doit) et que les deux versions ne coexistent tout simplement pas de manière raisonnable. Soit nos pauses logiciels, soit leurs pauses logiciels.
Alors, est-ce que quelqu'un a réussi à trouver un moyen de faire coexister les pilotes 32 bits avec des installations 64 bits? J'ai vu que l'installation avec /passive
permet aux deux d'être installés, et notre installateur utilise passif. Les deux sont en cours d'installation, mais une fois sur le système, notre logiciel ne fonctionne plus ou Office répare en permanence son installation. Y at-il un moyen raisonnable de faire ce travail?
Je n'aime pas répondre à mes propres questions, mais j'ai finalement trouvé une solution qui fonctionne réellement (utiliser une communication socket entre services peut résoudre le problème, mais cela crée encore plus de problèmes). Comme notre base de données est ancienne, elle a simplement requis Microsoft.ACE.OLEDB.12.0
dans la chaîne de connexion. Il s'avère que cela a également été inclus dans Office 2007 (et MSDE 2007), où seule une version 32 bits est disponible. Donc, au lieu d'installer MSDE 2010 32 bits, nous installons MSDE 2007 , et cela fonctionne très bien. D'autres applications peuvent ensuite installer MSDE 2010 64 bits (ou Office 2010 64 bits), ce qui n'entre pas en conflit avec notre application.
Jusqu'ici, il semble que ce soit une solution acceptable pour tous les environnements de système d'exploitation Windows.
Voici une solution de contournement pour installer la version 64 bits du moteur de base de données Microsoft Access 2010 redistribuable sur un système sur lequel une version MS Office 32 bits est installée:
Vous pouvez maintenant démarrer une application MS Office 32 bits sans le problème de "reconfiguration" . Notez que la valeur de registre "mso.dll" sera déjà présente si une version 64 bits de MS Office est installée. Dans ce cas, la valeur ne doit pas être supprimée ou renommée.
De même, si vous ne souhaitez pas utiliser le paramètre de ligne de commande "/ passive", vous pouvez modifier le fichier AceRedist.msi pour supprimer la vérification de l'architecture MS Office:
Vous pouvez maintenant utiliser ce fichier pour installer le moteur de base de données Microsoft Access 2010 redistribuable sur un système sur lequel une version "en conflit" de MS Office est installée (par exemple, une version 64 bits sur un système avec une version MS Office 32 bits) que vous renommez la valeur de registre "mso.dll" comme expliqué ci-dessus (si nécessaire).
J'ai reçu un message d'erreur plus spécifique indiquant de supprimer le composant d'extensibilité «Démarrer à exécuter Office 16».
Je l'ai corrigé en suivant les étapes de https://www.tecklyfe.com/fix-for-Microsoft-office-setup-error-please-uninstall-all-32-bit-office-programs-office-15- composant-extensibilité-en-un-clic/
Installez la version 2007, il semble que si vous installez la version opposée à la version d'Office que vous utilisez, vous pouvez le faire fonctionner.
http://www.Microsoft.com/en-us/download/details.aspx?id=23734
Une approche similaire à @Peter Coppins répond. Je pense que ceci est un peu plus facile et ne nécessite pas l'utilisation de l'utilitaire Orca:
Vérifiez la clé de registre "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" et assurez-vous que la valeur "mso.dll" n'est PAS présente. S'il est présent, Office 64 bits semble être installé et vous ne devriez pas avoir besoin de cette solution de contournement.
Télécharger le Microsoft Access Database Engine 2010 Redistributable .
À partir de la ligne de commande, exécutez: AccessDatabaseEngine_x64.exe/passive
(Remarque: ce programme d'installation s'est écrasé ou a échoué en silence pour moi. J'ai donc décompressé les composants et exécuté: AceRedist.msi/passive, ce qui est très bien installé. Peut-être un élément Windows 10.)
Source: Comment installer des pilotes de base de données Microsoft 64 bits avec Microsoft Office 32 bits
Si les deux versions de Microsoft Access Database Engine 2010 ne peuvent pas coexister, votre seule solution est de vous plaindre à Microsoft. En ce qui concerne le chargement de versions 64 bits de celle-ci dans votre application 32 bits, il est impossible de le faire directement. 64 bits qui communiquent avec un autre service 32 bits ou votre application via des tuyaux ou des sockets réseaux, mais cela peut nécessiter un effort considérable.