В настоящее время у нас есть основная проблема с использованием Microsoft Access Database Engine 2010. Механизм поставляется в 64-битной и 32-битной формах, что хорошо. Однако, по-видимому, вам нужно всегда устанавливать 32-разрядную версию, если хост-процесс всегда 32-битный. Хорошо, мы можем это сделать.
Наше программное обеспечение имеет дело с большим количеством устаревших компонентов, которые являются 32-разрядными, и большая часть из них находится в коде VB6, который генерирует 32-битную сборку. Итак, мы исходим из предположения, что драйвер также должен быть установлен как 32-разрядный. Действительно, когда мы устанавливаем 32-разрядные драйверы на 64-разрядной машине и запускаем наши 32-разрядные приложения, она работает правильно.
Однако проблема начинается с того, что в системе установлена 64-разрядная версия Office 2010. Поверьте мне, мы попытались обучить пользователей тому, что 64-битный Office в значительной степени не нужен, безрезультатно. Когда компьютеры сошли с конвейера с установленными 64-битными версиями, мы не сможем поддерживать запросы поддержки, когда наше программное обеспечение что-то сломает. Либо 64-разрядный Office нарушает нашу установку, либо наша установка нарушает их версию Office, но это не очень хорошо. Еще одна проблема заключается в том, что не-устаревшее программное обеспечение иногда устанавливает 64-битные драйверы (как и должно быть), и обе версии просто не сосуществуют разумным образом. Либо наше программное обеспечение ломается, либо их программное обеспечение ломается.
Итак, кому-нибудь удалось найти способ, чтобы 32-разрядные драйверы сосуществовали с 64-битными установками? Я видел, что установка с флагом /passive
позволяет устанавливать два, и наш установщик использует пассив. Оба устанавливаются, но один раз в системе либо наше программное обеспечение больше не работает, либо Office постоянно ремонтирует свою установку. Есть ли разумный способ сделать эту работу?