32bit 64bit - sistemas - MS Access DB Engine(32 bits) con Office de 64 bits
private declare function showwindow lib user32 64 bit (6)
Aquí hay una solución alternativa para instalar la versión de 64 bits de Microsoft Access Database Engine 2010 redistribuible en un sistema con una versión de MS Office de 32 bits instalada:
- Compruebe la clave de registro de 64 bits "HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Office / 14.0 / Common / FilesPaths" antes de instalar la versión de 64 bits de Microsoft Access Database Engine 2010 redistribuible.
- Si no contiene el valor de registro "mso.dll", deberá cambiar el nombre o eliminar el valor después de instalar la versión de 64 bits de Microsoft Access Database Engine 2010 redistribuible en un sistema con una versión de 32 bits de MS Oficina instalada.
- Use el parámetro de línea de comando "/ pasivo" para instalar el redistribuible, por ejemplo, "C: / ruta del directorio / AccessDatabaseEngine_x64.exe" / pasivo
- Elimine o cambie el nombre del valor de registro "mso.dll", que contiene la ruta a la versión de 64 bits de MSO.DLL (y no debe ser utilizado por las versiones de 32 bits de MS Office).
Ahora puede iniciar una aplicación MS Office de 32 bits sin el problema de "reconfiguración". Tenga en cuenta que el valor de registro "mso.dll" ya estará presente si está instalada una versión de 64 bits de MS Office. En este caso, el valor no debe eliminarse ni renombrarse.
Además, si no desea utilizar el parámetro de línea de comando "/ pasivo", puede editar el archivo AceRedist.msi para eliminar la comprobación de arquitectura de MS Office:
- Descargue e instale Microsoft Orca: http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx
- descomprimir el archivo AccessDatabaseEngine.exe o AccessDatabaseEngine_x64.exe
- abra el archivo AceRedist.msi en Orca
- busque dos filas de tabla que contengan la acción "CheckOfficeArchitecture" y suelte estas filas
- guarde el archivo AceRedist.msi actualizado
Ahora puede usar este archivo para instalar Microsoft Access Database Engine 2010 redistribuible en un sistema donde está instalada una versión "conflictiva" de MS Office (por ejemplo, versión de 64 bits en el sistema con la versión de 32 bits de MS Office) Asegúrese de cambiar el nombre el valor de registro "mso.dll" como se explicó anteriormente (si es necesario).
Actualmente tenemos un problema importante al usar Microsoft Access Database Engine 2010. El motor viene en formas de 64 bits y 32 bits, lo cual es bueno. Sin embargo, aparentemente siempre debe instalar la versión de 32 bits si el proceso del host siempre es de 32 bits. Bien, podemos hacer esto.
Nuestro software trata con una gran cantidad de componentes heredados que son de 32 bits, y gran parte de ellos están en código VB6, que genera un ensamblaje de 32 bits. Por lo tanto, estamos bajo la suposición de que el controlador también debe instalarse como de 32 bits. De hecho, cuando instalamos controladores de 32 bits en una máquina de 64 bits y ejecutamos nuestras aplicaciones de 32 bits, funciona correctamente.
Sin embargo, el problema comienza cuando se instala Office 2010 de 64 bits en el sistema. Créanme, hemos intentado informar a los usuarios que Office de 64 bits es en gran medida innecesaria, pero fue en vano. A medida que las computadoras salen de la línea de ensamblaje con las versiones de 64 bits instaladas, no podemos mantenernos al día con las solicitudes de soporte cuando nuestro software rompe algo. O la Office de 64 bits interrumpe nuestra instalación, o nuestra instalación rompe su versión de Office, pero no es bonita de ninguna manera. Otro problema es que el software no heredado a veces instala los controladores de 64 bits (como deberían) y las dos versiones simplemente no coexisten de manera razonable. O nuestro software se rompe o se rompe su software.
Entonces, ¿alguien ha logrado encontrar la manera de hacer que los controladores de 32 bits coexistan con las instalaciones de 64 bits? He visto que la instalación con /passive
indicador /passive
permite que los dos se instalen, y nuestro instalador usa pasivo. Ambos se están instalando, pero una vez en el sistema, nuestro software ya no funciona o Office repara constantemente su instalación. ¿Hay alguna manera razonable de hacer que esto funcione?
Instale la versión 2007, parece que si instala la versión opuesta a la versión de Office que está utilizando, puede hacerlo funcionar.
http://www.microsoft.com/en-us/download/details.aspx?id=23734
Odio responder mis propias preguntas, pero finalmente encontré una solución que realmente funciona (el uso de la comunicación de socket entre servicios puede solucionar el problema, pero crea aún más problemas). Como nuestra base de datos es heredada, solo requirió Microsoft.ACE.OLEDB.12.0
en la cadena de conexión. Resulta que esto también se incluyó en Office 2007 (y MSDE 2007), donde solo hay una versión de 32 bits disponible. Entonces, en lugar de instalar MSDE 2010 de 32 bits, instalamos MSDE 2007 y funciona perfectamente. Otras aplicaciones pueden instalar MSDE 2010 de 64 bits (o Office 2010 de 64 bits) y no entran en conflicto con nuestra aplicación.
Hasta ahora, parece que esta es una solución aceptable para todos los entornos de SO Windows.
Si ambas versiones de Microsoft Access Database Engine 2010 no pueden coexistir, entonces su única solución es quejarse ante Microsoft, con respecto a cargar versiones de 64 bits de esto en su aplicación de 32 bits es imposible directamente, lo que puede hacer es un servicio que se ejecuta en 64 bits que se comunica con otro servicio de 32 bits o su aplicación a través de tomas de tuberías o redes, pero puede requerir un esfuerzo significativo.
Tuve un mensaje de error más específico que decía que debía eliminar el componente de Extensibilidad de clic para ejecutar de Office 16
Lo arreglé siguiendo los pasos en https://www.tecklyfe.com/fix-for-microsoft-office-setup-error-please-uninstall-all-32-bit-office-programs-office-15-click-to-run-extensibility-component/
- Vaya a Inicio> Ejecutar (o Winkey + R)
- Escriba "installer" (que abre la carpeta del instalador% windir%), asegúrese de que todos los archivos estén visibles en Windows (Configuración de carpetas)
- Agregue la columna "Asunto" (y haga que tenga al menos 400 píxeles de ancho) - Haga clic con el botón derecho en los encabezados de las columnas, haga clic en Más, luego busque Asunto
- Ordene en la columna Asunto y desplácese hacia abajo hasta que encuentre el nombre mencionado en su pantalla de error ("Componente de Extensibilidad de clic de ejecución de Office 16")
- Haga clic derecho en el MSI y elija desinstalar
Un enfoque similar a la respuesta de @Peter Coppins. Esto, creo, es un poco más fácil y no requiere el uso de la utilidad Orca:
Compruebe la clave de registro "HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Office / 14.0 / Common / FilesPaths" y asegúrese de que el valor "mso.dll" NO esté presente. Si está presente, parece que Office 64-bit está instalado y no debería necesitar esta solución alternativa.
Descargue el motor de base de datos de Microsoft Access 2010 redistribuible .
Desde la línea de comandos, ejecute: AccessDatabaseEngine_x64.exe / pasivo
(Nota: este instalador se colapsó silenciosamente o falló para mí, así que descomprimí los componentes y ejecuté: AceRedist.msi / pasivo y eso bien instalado. Tal vez algo de Windows 10).
- Elimine o cambie el nombre del valor "mso.dll" en la clave "HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Office / 14.0 / Common / FilesPaths".