Sto usando la versione a 64 bit di Windows 7 dal CTP e ho riscontrato alcuni problemi con le applicazioni che vengono installate nella C:\Program Files (x86)
cartella. Qual è lo scopo di avere comunque 2 directory di file di programma separate?
Ogni programma che ho installato è andato nella C:\Program Files (x86)
cartella. Non sembra importare se l'app è a 32 o 64 bit. Perché le app a 64 bit non vengono inserite C:\Program Files
?
C'è un modo per modificare l'impostazione predefinita per essere C:\Program Files
invece? Avrebbe rovinato qualcosa se avessi messo tutto C:\Program Files
?
Se in effetti ci fosse qualche vantaggio nell'avere una cartella separata per le app a 64 bit, sembra che l'impostazione predefinita più sensata sarebbe stata quella di utilizzare C:\Program Files
le app x86 e creare una nuova C:\Program Files (x64)
cartella per le nuove app a 64 bit. Ciò contribuirebbe a mantenere la compatibilità con le versioni precedenti. Lavoro come sviluppatore di software e alcuni dei miei progetti contengono riferimenti di percorso a librerie in C:\Program Files
. Ora quei riferimenti sono rotti sul computer Windows 7 che li ha inseriti C:\Program Files (x86)
. Ho anche provato a cambiare la posizione di destinazione nell'installer C:\Program Files
, ma questo è stato ignorato e l'app è andata C:\Program Files (x86)
comunque.
Questo è molto frustrante perché devo condividere il codice sorgente tra macchine a 32 e 64 bit e non voglio fare confusione con alcuni file di configurazione che impostano il percorso di queste librerie in modo diverso su macchine diverse.
Modifica per quanto riguarda le variabili di ambiente: (. Utilizzando solo difetto valori in inglese di variabili per semplicità) Su una macchina a 64 bit %ProgramFiles%
sarà C:\Program Files
mentre la nuova variabile di zecca %ProgramFiles(x86)%
sarà C:\Program Files (x86)
. Quindi, se si dispone di un programma a 32 bit che deve trovare il percorso della cartella in cui sarebbe installato, dovrebbe verificare se era in esecuzione su una versione di Windows a 32 o 64 bit per per sapere quale variabile d'ambiente usare. Qualsiasi app a 32 bit scritta senza questa considerazione dovrebbe essere aggiornata per funzionare correttamente su un computer a 64 bit. Quindi, anche usando le variabili di ambiente, la compatibilità con le versioni precedenti viene interrotta.
Inoltre, %ProgramFiles(x86)%
non esiste nelle versioni a 32 bit di Windows. In tal caso, le app a 32 bit potrebbero sempre utilizzare quella variabile di ambiente e non richiederebbero alcuna logica condizionale in base al sistema operativo su cui sono in esecuzione.
%ProgramFiles%
variabile d'ambiente avrebbe risolto questo problema. Non sono sicuro di come gestisca la differenza x86 / 64bit.