Saya telah menggunakan versi 64-bit Windows 7 sejak CTP dan telah mengalami beberapa masalah dengan aplikasi yang diinstal di C:\Program Files (x86)
folder. Apa tujuan dari memiliki 2 direktori File Program yang terpisah?
Setiap program yang saya instal telah masuk ke C:\Program Files (x86)
folder. Tampaknya tidak masalah jika aplikasinya 32 atau 64 bit. Mengapa aplikasi 64-bit tidak ditempatkan C:\Program Files
?
Apakah ada cara untuk mengubah default menjadi C:\Program Files
? Apakah akan mengacaukan segalanya jika saya hanya memasukkan semuanya ke dalam C:\Program Files
?
Jika memang ada manfaat memiliki folder terpisah untuk aplikasi 64 bit, sepertinya default yang lebih masuk akal akan digunakan C:\Program Files
untuk aplikasi x86 dan membuat C:\Program Files (x64)
folder baru untuk aplikasi 64-bit yang baru. Ini akan membantu menjaga kompatibilitas ke belakang. Saya bekerja sebagai pengembang perangkat lunak dan beberapa proyek saya berisi referensi jalur ke perpustakaan di bawah C:\Program Files
. Sekarang referensi tersebut rusak pada mesin Windows 7 yang telah menempatkannya C:\Program Files (x86)
. Saya bahkan mencoba mengubah lokasi target menjadi installer C:\Program Files
, tetapi itu diabaikan dan aplikasi C:\Program Files (x86)
tetap masuk .
Ini sangat menyebalkan karena saya perlu berbagi kode sumber antara mesin 32 dan 64 bit dan saya tidak ingin harus mengacaukan dengan beberapa file konfigurasi yang menetapkan jalur ke pustaka ini secara berbeda pada mesin yang berbeda.
Edit terkait variabel lingkungan: (Menggunakan hanya nilai-nilai variabel standar bahasa Inggris untuk kesederhanaan.) Pada mesin 64-bit %ProgramFiles%
akan C:\Program Files
sementara variabel baru %ProgramFiles(x86)%
akan C:\Program Files (x86)
. Jadi, jika Anda memiliki program 32-bit yang perlu menemukan jalur folder tempat ia akan diinstal, ia perlu memeriksa untuk melihat apakah program itu berjalan pada Windows versi 32-bit atau 64-bit agar untuk mengetahui variabel lingkungan mana yang digunakan. Aplikasi 32-bit apa pun yang ditulis tanpa pertimbangan ini perlu diperbarui agar berfungsi dengan benar pada mesin 64-bit. Jadi, bahkan menggunakan variabel lingkungan, kompatibilitas mundur rusak.
Juga, %ProgramFiles(x86)%
tidak ada pada Windows versi 32-bit. Jika ya, maka aplikasi 32-bit hanya dapat selalu menggunakan variabel lingkungan itu dan tidak akan memerlukan logika kondisional berdasarkan OS yang mereka jalankan.
sumber
%ProgramFiles%
variabel lingkungan akan menyelesaikan ini. Tidak yakin bagaimana ia menangani perbedaan x86 / 64bit.Jawaban:
Alasannya adalah karena banyak penginstal lama yang tidak memahami struktur file baru dan mem-plonk segala sesuatu dalam direktori file program standar atau Anda sedang melihat program pintar yang memiliki beberapa komponen 32-bit yang sedang disalin di sana.
Taruhan terbaik Anda adalah mengunduh program baru - seperti x64 Winrar dan lihat saja di mana ia diinstal hanya untuk mengesampingkan masalah dengan mesin Anda.
Adapun mengacaukan hal-hal - itu bisa, tetapi itu benar-benar tergantung pada programnya, tidak ada satu jawaban yang cocok untuk semua ... beberapa program yang lebih kecil dan ringkas dengan hanya beberapa file seharusnya tidak memiliki masalah, sedangkan, jika Anda berbicara tentang Office , Adobe atau "suite" atau program besar lainnya, kemungkinan besar akan gagal karena mereka memiliki banyak komponen bersama yang lintas arsitektur.
sumber
Jika Anda menggunakan apa pun selain
%ProgramFiles%
(atauCSIDL_PROGRAM_FILES
, atau di bawah. NETEnvironment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
) Anda tetap berada dalam masalah, karena instalasi khusus dapat menginstal program di bawah volume lain (D: misalnya) dan instalasi internasional sering memiliki folder lain secara default.C:\Archivos de Programa
,C:\Programmes
,C:\Programme
,C:\Program
dll.
sumber
%ProgramFiles%
persis apa yang menyebabkan masalah.Harap dicatat bahwa di bawah versi 64-bit Windows 7 (ini juga berlaku untuk versi OS yang lebih baru juga, tetapi saya hanya dapat mengkonfirmasi ini untuk Win 7 64-bit) ada perbedaan antara lokasi yang jelas dari% ProgramFiles% Anda di penjelajah dan di DOS.
Di bawah windows 7 lokasi folder fisik aktual dari% ProgramFiles% (dan% ProgramFiles% terkait (x86)% variabel environmentemnt) ditetapkan sesuai versi bahasa Inggris ; yaitu "C: \ Program Files" dan "C: \ Program Files (x86)" respectivley, tetapi ditampilkan dalam eksploer yang dilokalkan sesuai keperluan .
Untuk memberikan contoh spesifik; pada Swedia Windows 7 64-bit instal, jika Anda membuka Explorer dan lihat di drive sistem (biasanya C :) Anda melihat folder " Program " dan " Program (x86) ". Mengetik% ProgramFiles% ke bilah alamat menggerakkan Anda ke "C: \ Program".
Namun jika Anda membuka kotak DOS dan mengetik SET Anda akan melihat bahwa nilai aktual dari% ProgramFiles% adalah "C: \ Program Files" bukan eksploer folder "C: \ Program" yang menunjukkan kepada Anda. Menjelajahi lebih lanjut dengan CD dan DIR yang dapat Anda lihat secara fisik adalah "C: \ Program Files"
Moralnya adalah jika Anda menggunakan lingkungan varaibles atau program melalui API, semuanya akan tetap berfungsi, tetapi waspadai perubahan halus ini saat menjelajahi sistem file!
sumber