Colocar bibliotecas de componentes en la carpeta EXE (con o sin archivos .local) puede ser nocivo para la seguridad de las máquinas de destino también.
Los programas VB6 registrarán los componentes aquí a través del punto de entrada de autoregistro detrás de su espalda si no están previamente registrados. Luego, si la aplicación se mueve o quita, deja al usuario con una reinscripción interrumpida, posiblemente fatal para las aplicaciones instaladas posteriormente que utilizan algunos de los mismos componentes. Sin embargo, esto está bien para los componentes específicos de la aplicación, es decir, su propia DLL u OCX que hará que nunca sea necesario por otra aplicación.
El truco .local en realidad no fue diseñado para ser utilizado con los programas VB6 y, si lo usa, su instalador debe tener en cuenta e instalar y registrar adecuadamente los componentes si aún no están en la máquina. Se suponía que era un truco manual para solucionar problemas de compatibilidad de versiones de DLL en máquinas individuales, no una estrategia de implementación.
Vaya a la aplicación SxS y manifiestos de ensamblaje (COM Reg-Free y más) para una mejor solución. La redirección de DLL/COM (.local) fue un buen intento, pero tiene muchas verrugas.
Esta es la respuesta correcta en Win2k +. Tenga en cuenta, sin embargo, que si A.EXE tiene un manifiesto incrustado, o si existe A.EXE.manifest (por ejemplo, para habilitar COM libre de registro, hacer que su PPP de programa sea consciente, etc.), se ignora el archivo .local , ya que los manifiestos están destinados a ser una tecnología de reemplazo. Si ese es el caso, en su manifiesto, puede simplemente enumerar los archivos que desea utilizar desde el directorio de su aplicación para forzarlos a cargarse desde allí: –