那是因為他們這些軟體所使用的 Installer (安裝程式), 仍然是 32 bits 的版本, 沒有升級. 所以當他解譯路徑 %PROGRAMFILES% 的時候, Windows 會回應他 C:\Program Files (x86) 而不是 C:\Program Files.
國內很多軟體公司都沒有升級的習慣, 所以很可能是十幾年前舊版的 Installer 買了之後就一直沿用下來, 雖然原廠早已經出了新的 64-bits 版本, 但因為沒有花錢買更新, 所以當然也拿不到新版 Installer, 造成安裝過程都會放在 (x86) 下面....
對 Windows 來說這並沒有差別, 因為在 (x86) 路徑下仍然可以啟動 64-bits 軟體....
VisualStudio發布的ClickOnce則不再放在Program files或(x86)裡了,而是%userfolder%\AppData裡了
我慣用這方法發包安裝程式,方便自動更新
這還要看安裝軟體本身是64位元,還是32位元,現在一堆軟體根本還是32位元,只是能在64位元環境上執行而已
因為windows64還是支援跑32的程式
支援是可以確保在win64平台運作
不一定一定是64位元的程式
個人寫NSIS封裝安裝程式的經驗
安裝程式本身也是一種程式
寫安裝程式的人,
可以指定調用系統Program files變數要放到x86還是非x86,
包含regedit的部分都是如此有分別
如果要封裝的程式還是32位元的,寫的人會替他指定丟到x86去
如果要封裝的程式還是64位元的,寫的人會替他指定丟到非x86去
就算丟錯了 軟體本身環境相依性沒這麼要求,其實還是有機會能正常跑