He estado usando la versión de 64 bits de Windows 7 desde el CTP y me he encontrado con algunos problemas con las aplicaciones que se instalan en la C:\Program Files (x86)
carpeta. ¿Cuál es el propósito de tener 2 directorios de archivos de programa separados de todos modos?
Todos los programas que he instalado han ido a la C:\Program Files (x86)
carpeta. No parece importar si la aplicación es de 32 o 64 bits. ¿Por qué no se colocan aplicaciones de 64 bits C:\Program Files
?
¿Hay alguna manera de cambiar el valor predeterminado para que sea C:\Program Files
en su lugar? ¿Arruinaría algo si simplemente pongo todo C:\Program Files
?
Si de hecho hay algún beneficio en tener una carpeta separada para aplicaciones de 64 bits, parece que el valor predeterminado más sensato hubiera sido usar C:\Program Files
para aplicaciones x86 y crear una nueva C:\Program Files (x64)
carpeta para las nuevas aplicaciones de 64 bits. Esto ayudaría a mantener la compatibilidad con versiones anteriores. Trabajo como desarrollador de software y algunos de mis proyectos contienen referencias de ruta a bibliotecas en C:\Program Files
. Ahora esas referencias están rotas en la máquina con Windows 7 que las ha colocado C:\Program Files (x86)
. Incluso intenté cambiar la ubicación de destino en el instalador C:\Program Files
, pero eso fue ignorado y la aplicación entró de C:\Program Files (x86)
todos modos.
Esto es muy frustrante porque necesito compartir el código fuente entre máquinas de 32 y 64 bits y no quiero tener que meterme con algún archivo de configuración que establece la ruta a estas bibliotecas de manera diferente en diferentes máquinas.
Editar con respecto a las variables de entorno: (Usando solo valores predeterminados en inglés de variables para simplificar). En una máquina de 64 bits %ProgramFiles%
será C:\Program Files
mientras que la nueva variable %ProgramFiles(x86)%
será C:\Program Files (x86)
. Entonces, si tiene un programa de 32 bits que necesita encontrar la ruta de la carpeta en la que se instalaría, necesitaría verificar si se estaba ejecutando en una versión de Windows de 32 bits o de 64 bits para poder saber qué variable de entorno usar. Cualquier aplicación de 32 bits que se haya escrito sin esta consideración deberá actualizarse para que funcione correctamente en una máquina de 64 bits. Entonces, incluso usando variables de entorno, la compatibilidad con versiones anteriores está rota.
Además, %ProgramFiles(x86)%
no existe en las versiones de Windows de 32 bits. Si lo hiciera, las aplicaciones de 32 bits siempre podrían usar esa variable de entorno y no necesitarían ninguna lógica condicional en función del sistema operativo en el que se ejecutan.
%ProgramFiles%
variable de entorno hubiera resuelto esto. No estoy seguro de cómo maneja la diferencia x86 / 64bit.