Tôi đã sử dụng phiên bản 64 bit của Windows 7 kể từ CTP và đã gặp phải một số vấn đề với các ứng dụng được cài đặt trong C:\Program Files (x86)
thư mục. Mục đích của việc có 2 thư mục Tệp Chương trình riêng biệt là gì?
Mỗi chương trình tôi đã cài đặt đã đi vào C:\Program Files (x86)
thư mục. Nó dường như không quan trọng nếu ứng dụng là 32 hoặc 64 bit. Tại sao các ứng dụng 64 bit không được đặt vào C:\Program Files
?
Có cách nào để thay đổi mặc định để C:\Program Files
thay thế? Nó sẽ làm mọi thứ rối tung lên nếu tôi đặt mọi thứ vào C:\Program Files
?
Nếu thực sự có một số lợi ích khi có một thư mục riêng cho các ứng dụng 64 bit, có vẻ như mặc định hợp lý hơn sẽ được sử dụng C:\Program Files
cho các ứng dụng x86 và tạo một C:\Program Files (x64)
thư mục mới cho các ứng dụng 64 bit mới. Điều này sẽ giúp duy trì khả năng tương thích ngược. Tôi làm việc như một nhà phát triển phần mềm và một số dự án của tôi chứa các tham chiếu đường dẫn đến các thư viện bên dưới C:\Program Files
. Bây giờ các tham chiếu đó đã bị hỏng trên máy Windows 7 đã đặt chúng vào C:\Program Files (x86)
. Tôi thậm chí đã cố gắng thay đổi vị trí mục tiêu trong trình cài đặt thành C:\Program Files
, nhưng điều đó đã bị bỏ qua và ứng dụng vẫn tiếp tục C:\Program Files (x86)
.
Điều này rất khó chịu vì tôi cần chia sẻ mã nguồn giữa các máy 32 và 64 bit và tôi không muốn phải làm phiền với một số tệp cấu hình đặt đường dẫn đến các thư viện này khác nhau trên các máy khác nhau.
Chỉnh sửa về các biến môi trường: (Chỉ sử dụng các giá trị biến tiếng Anh mặc định cho đơn giản.) Trên máy 64 bit %ProgramFiles%
sẽ có C:\Program Files
trong khi biến hoàn toàn mới %ProgramFiles(x86)%
sẽ là C:\Program Files (x86)
. Vì vậy, nếu bạn có chương trình 32 bit cần tìm đường dẫn thư mục sẽ được cài đặt bên dưới, thì cần phải kiểm tra xem liệu nó đang chạy trên phiên bản Windows 32 bit hay 64 bit theo thứ tự để biết biến môi trường nào sẽ sử dụng. Bất kỳ ứng dụng 32 bit nào được viết mà không có sự cân nhắc này sẽ cần phải được cập nhật để hoạt động chính xác trên máy 64 bit. Vì vậy, ngay cả khi sử dụng các biến môi trường, khả năng tương thích ngược bị phá vỡ.
Ngoài ra, %ProgramFiles(x86)%
không tồn tại trên các phiên bản Windows 32 bit. Nếu đúng như vậy, thì các ứng dụng 32 bit luôn có thể sử dụng biến môi trường đó và sẽ không cần bất kỳ logic điều kiện nào dựa trên hệ điều hành mà chúng đang chạy.
%ProgramFiles%
biến môi trường sẽ giải quyết điều này. Không chắc chắn làm thế nào nó xử lý sự khác biệt x86 / 64 bit.