Eu tenho usado a versão de 64 bits do Windows 7 desde o CTP e tenho tido alguns problemas com aplicativos que são instalados no C:\Program Files (x86)
pasta. Qual é o propósito de ter dois diretórios separados de Arquivos de Programas?
Todo programa que eu instalei entrou no C:\Program Files (x86)
pasta. Não parece importar se o aplicativo é de 32 ou 64 bits. Por que os aplicativos de 64 bits não são colocados em C:\Program Files
?
Existe uma maneira de alterar o padrão para ser C:\Program Files
em vez de? Seria bagunça tudo se eu colocar tudo em C:\Program Files
?
Se de fato existe algum benefício em ter uma pasta separada para aplicativos de 64 bits, parece que o padrão mais sensato seria usar C:\Program Files
para aplicativos x86 e criar um novo C:\Program Files (x64)
pasta para os novos aplicativos de 64 bits. Isso ajudaria a manter a compatibilidade com versões anteriores. Eu trabalho como desenvolvedor de software e alguns dos meus projetos contêm referências de caminho para bibliotecas sob C:\Program Files
. Agora essas referências estão quebradas na máquina Windows 7 que as colocou C:\Program Files (x86)
. Eu até tentei mudar o local de destino no instalador para ser C:\Program Files
, mas isso foi ignorado e o aplicativo entrou em C:\Program Files (x86)
de qualquer forma.
Isso é muito frustrante porque preciso compartilhar o código-fonte entre máquinas de 32 e 64 bits e não quero ter que mexer com algum arquivo de configuração que defina o caminho para essas bibliotecas de maneira diferente em máquinas diferentes.
Edite as variáveis de ambiente: (Utilizando apenas valores padrão ingleses de variáveis para simplificar.) Em uma máquina de 64 bits %ProgramFiles%
será C:\Program Files
enquanto a nova variável %ProgramFiles(x86)%
será C:\Program Files (x86)
. Portanto, se você tiver um programa de 32 bits que precise encontrar o caminho da pasta em que ele será instalado, será necessário verificar se ele estava sendo executado em uma versão de 32 bits ou de 64 bits do Windows para para saber qual variável de ambiente usar. Quaisquer aplicativos de 32 bits que foram gravados sem essa consideração precisariam ser atualizados para funcionar corretamente em uma máquina de 64 bits. Portanto, mesmo usando variáveis de ambiente, a compatibilidade com versões anteriores é interrompida.
Além disso, %ProgramFiles(x86)%
não existe em versões de 32 bits do Windows. Em caso afirmativo, os aplicativos de 32 bits poderiam sempre usar essa variável de ambiente e não precisariam de lógica condicional com base no sistema operacional em que estão sendo executados.
%ProgramFiles%
variável de ambiente teria resolvido isso. Não tenho certeza de como ele lida com a diferença de x86 / 64 bits.