MS Access DB Engine (32-bit) z Office 64-bit

Mamy obecnie poważny problem z użyciem silnika bazy danych Microsoft Access 2010. Silnik jest w 64-bitowych i 32-bitowych formach, co jest dobre. Jednak najwyraźniej musisz zawsze instalować wersję 32-bitową, jeśli proces hosta jest zawsze 32-bitowy. Dobra, damy radę.

Nasze oprogramowanie zajmuje się wieloma starszymi komponentami, które są 32-bitowe, a wiele z nich jest w kodzie VB6, który generuje 32-bitowy montaż. Tak więc zakładamy, że sterownik musi być również zainstalowany jako 32-bitowy. Rzeczywiście, gdy instalujemy 32-bitowe sterowniki na 64-bitowym komputerze i uruchamiamy nasze 32-bitowe aplikacje, działa to poprawnie.

Jednak problem zaczyna się, gdy Office 2010 64-bit jest zainstalowany w systemie. Zaufaj mi, staraliśmy się edukować użytkowników, że 64-bitowy pakiet Office jest w dużej mierze niepotrzebny, bez skutku. Ponieważ komputery schodzą z linii montażowej z zainstalowanymi wersjami 64-bitowymi, nie jesteśmy w stanie nadążyć za żądaniami pomocy technicznej, gdy nasze oprogramowanie coś zepsuje. Albo 64-bitowe Biuro łamie nasze instalacja, lub nasza instalacja psuje ich wersję biurową, ale i tak nie jest ładna. Kolejnym problemem jest to, że inne niż starsze oprogramowanie czasami instaluje sterowniki 64-bitowe (tak jak powinny), a obie wersje po prostu nie współistnieją w żaden rozsądny sposób. Albo nasze oprogramowanie się psuje, albo ich Oprogramowanie się psuje.

Czy udało się komuś znaleźć sposób, aby sterowniki 32-bitowe współistniały z instalacjami 64-bitowymi? Widziałem, że instalacja z /passive flagą pozwala na zainstalowany, a nasz instalator używa pasywnego. Oba są instalowane, ale raz w systemie albo nasze oprogramowanie przestaje działać, albo Biuro stale naprawia swoją instalację. Czy jest jakiś rozsądny sposób, aby to zadziałało?
Author: drharris, 2012-09-04

6 answers

Oto obejście instalacji 64-bitowej wersji programu Microsoft Access Database Engine 2010 redistributable na systemie z zainstalowaną 32-bitową wersją pakietu MS Office:

  • Sprawdź 64-bitowy klucz rejestru "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Common \ FilesPaths" przed zainstalowaniem 64-bitowej wersji programu Microsoft Access Database Engine 2010 redistributable.
  • Jeśli nie zawiera " mso.dll " wartość rejestru, następnie trzeba będzie zmienić nazwę lub usunąć wartość po zainstalowaniu 64-bitowej wersji programu Microsoft Access Database Engine 2010 redistributable na systemie z zainstalowaną 32-bitową wersją pakietu MS Office.
  • użyj parametru wiersza poleceń "/ passive", aby zainstalować redystrybucję, np. "C:\directory path\AccessDatabaseEngine_x64.exe " / passive
  • Usuń lub zmień nazwę " mso.dll " wartość rejestru, która zawiera ścieżkę do 64-bitowej wersji MSO.DLL (i nie powinny być używane przez 32-bitowe wersje MS Office).

Teraz możesz uruchomić 32-bitową aplikację MS Office bez problemu z "ponowną konfiguracją". Należy zauważyć, że " mso.wartość rejestru dll" będzie już obecna, jeśli zainstalowana jest 64-bitowa wersja pakietu MS Office. W takim przypadku wartość nie powinna być usuwana ani zmieniana na inną.

Również jeśli nie chcesz używać parametru wiersza poleceń "/passive " możesz edytować AceRedist.plik msi do usunięcia sprawdzania architektury MS Office:

Możesz teraz użyć tego pliku, aby zainstalować Microsoft Access Database Engine 2010 redistributable na system, w którym zainstalowana jest" sprzeczna " wersja MS Office (np. wersja 64-bitowa w systemie z 32-bitową wersją MS Office) Upewnij się, że zmieniłeś nazwę "mso.dll " wartość rejestru, jak wyjaśniono powyżej (w razie potrzeby).

 25
Author: Peter Coppens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-20 15:35:13

Nienawidzę odpowiadać na własne pytania, ale w końcu znalazłem rozwiązanie, które faktycznie działa(korzystanie z komunikacji socket między usługami może rozwiązać problem, ale stwarza jeszcze więcej problemów). Ponieważ nasza baza danych jest przestarzała, wymaga tylko Microsoft.ACE.OLEDB.12.0 w łańcuchu połączeń. Okazuje się, że było to również zawarte w Office 2007 (i MSDE 2007), gdzie dostępna jest tylko Wersja 32-bitowa. Tak więc zamiast instalować MSDE 2010 32-bit, instalujemy MSDE 2007 i działa tylko dobrze. Inne aplikacje mogą następnie zainstalować 64-bitowy MSDE 2010 (lub 64-bitowy Office 2010) i nie jest to sprzeczne z naszą aplikacją.

Jak dotąd wydaje się, że jest to akceptowalne rozwiązanie dla wszystkich środowisk systemu Windows.

 17
Author: drharris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-17 14:14:45

Zainstaluj wersję 2007, wydaje się, że jeśli zainstalujesz wersję przeciwną do wersji pakietu Office, którego używasz, możesz to zrobić.

Http://www.microsoft.com/en-us/download/details.aspx?id=23734

 1
Author: Matthew Dolman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-16 06:42:44

Podobne podejście do odpowiedzi @ Peter Coppins. To, myślę, jest nieco łatwiejsze i nie wymaga użycia narzędzia Orca:

  1. Sprawdź klucz rejestru "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Common \ FilesPaths" i upewnij się, że wartość " mso.dll " nie jest obecny. Jeśli jest obecny, wydaje się, że pakiet Office 64-bit jest zainstalowany i nie powinieneś potrzebować tego obejścia.

  2. Pobierz Microsoft Access Database Engine 2010 Redistributable .

  3. Z linii poleceń uruchom: AccessDatabaseEngine_x64.exe / passive

(uwaga: ten instalator po cichu się zepsuł lub nie powiódł, więc rozpakowałem komponenty i uruchomiłem: AceRedist.MSI / passive I to zainstalowane dobrze. Może Windows 10.)

  1. Usuń lub zmień nazwę " mso.wartość dll "w kluczu" HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Common \ FilesPaths".

Źródło: Jak zainstalować 64-bit Sterowniki bazy danych Microsoft wraz z 32-bitowym pakietem Microsoft Office

 1
Author: Jahmic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-26 13:24:01

Miałem bardziej szczegółowy komunikat o błędzie, który stwierdził, aby usunąć "Office 16 Click-to-Run Extensibility Component"

Naprawiłem to wykonując kroki w https://www.tecklyfe.com/fix-for-microsoft-office-setup-error-please-uninstall-all-32-bit-office-programs-office-15-click-to-run-extensibility-component/

  • przejdź do Start > Run (lub Winkey + R)
  • wpisz "instalator" (który otwiera folder%windir % installer), upewnij się, że wszystkie pliki są widoczne w systemie Windows (Folder Ustawienia)
  • Dodaj kolumnę "temat" (i ustaw szerokość co najmniej 400 pikseli) - kliknij prawym przyciskiem myszy na nagłówkach kolumn, kliknij Więcej, a następnie znajdź temat
  • Sortuj w kolumnie temat i przewiń w dół, aż znajdziesz nazwę wymienioną na ekranie błędu ("Office 16 Click-to-Run Extensibility Component")
  • Kliknij prawym przyciskiem myszy MSI i wybierz odinstaluj
 1
Author: kloarubeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 09:58:45

Jeśli obie wersje programu Microsoft Access Database Engine 2010 nie mogą współistnieć, to jedynym rozwiązaniem jest skarga do Microsoft, dotyczące ładowania 64-bitowych wersji tego w 32-bitowej aplikacji jest niemożliwe bezpośrednio, co można zrobić, to usługa, która działa w 64-bitowej, która komunikuje się z inną 32-bitową usługą lub aplikacją za pośrednictwem rur lub gniazd sieciowych, ale może to wymagać znacznego wysiłku.

 0
Author: Rafael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-14 19:52:54