iT邦幫忙

1

MIS問題 : 為何許多軟體支援64位元的軟體,安裝位子還是放在 `C:\Program Files (x86)`而不是`C:\Program Files`?

C:\Program Files (x86) 是專門放置32位元程式
但一堆國產軟體開發支援64位元的軟體還是放在 C:\Program Files (x86)而不是C:\Program Files?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

21
Ray
iT邦大神 1 級 ‧ 2020-08-06 10:10:06
最佳解答

那是因為他們這些軟體所使用的 Installer (安裝程式), 仍然是 32 bits 的版本, 沒有升級. 所以當他解譯路徑 %PROGRAMFILES% 的時候, Windows 會回應他 C:\Program Files (x86) 而不是 C:\Program Files.

國內很多軟體公司都沒有升級的習慣, 所以很可能是十幾年前舊版的 Installer 買了之後就一直沿用下來, 雖然原廠早已經出了新的 64-bits 版本, 但因為沒有花錢買更新, 所以當然也拿不到新版 Installer, 造成安裝過程都會放在 (x86) 下面....

對 Windows 來說這並沒有差別, 因為在 (x86) 路徑下仍然可以啟動 64-bits 軟體....

看更多先前的回應...收起先前的回應...

raytracy 大神 , 您的回答讓人受益良多!

VisualStudio發布的ClickOnce則不再放在Program files或(x86)裡了,而是%userfolder%\AppData裡了

我慣用這方法發包安裝程式,方便自動更新

BKY iT邦研究生 2 級 ‧ 2020-08-06 17:56:01 檢舉

這還要看安裝軟體本身是64位元,還是32位元,現在一堆軟體根本還是32位元,只是能在64位元環境上執行而已

DennisLu iT邦研究生 1 級 ‧ 2020-08-07 10:21:51 檢舉

因為windows64還是支援跑32的程式
支援是可以確保在win64平台運作
不一定一定是64位元的程式

個人寫NSIS封裝安裝程式的經驗

安裝程式本身也是一種程式
寫安裝程式的人,
可以指定調用系統Program files變數要放到x86還是非x86,
包含regedit的部分都是如此有分別

如果要封裝的程式還是32位元的,寫的人會替他指定丟到x86去
如果要封裝的程式還是64位元的,寫的人會替他指定丟到非x86去
就算丟錯了 軟體本身環境相依性沒這麼要求,其實還是有機會能正常跑

我要發表回答

立即登入回答