最近从一台电脑迁移便携软件到另一台电脑上, 发现原本的配置文件并没有放在 exe 文件的路径下, 而是放在 C 盘 Users\Administrator\Application Data 下的. 用过的便携软件大多都是把配置文件放在 exe 文件同路径下的, 毕竟叫"便携软件"嘛.
那么便携软件把配置文件放到 C 盘是为何? 是有读写速度的提高吗? 还是单纯的失误?
1
yulon 2022-02-14 19:22:41 +08:00
假设你只有一个 C 盘的情况下,非管理员权限只能写到 AppData 去
|
2
natsukage 2022-02-14 19:41:16 +08:00 via iPhone 1
vista 开始软件就没有权限写 program files 了
标准做法规定就是软件只能写自己的 Appdata ,不能随便写 program files 。同时,因为这样的策略,所以同一台计算机上不同用户的配置文件是相互独立的,而不会所有用户共用同一个配置文件。 所以有些软件安装时候还会特地问你是给所有用户安装还是只给自己安装。给所有用户安装就是安装到 program files ,但是会弹 UAC |
3
nightwitch 2022-02-15 09:51:27 +08:00 1
因为你已经习惯了用`Administrator`权限了。
如果你试过用普通用户(不能通过 UAC 提权的那种)你就会发现 C 盘许多目录都是没权限写的 |
4
ruanimal 2022-02-15 10:10:02 +08:00
这不是真正的便携软件
|
6
zpvip 2022-02-15 17:39:20 +08:00
Appdata 文件夹下的软件可以静默升级,方便开发者修复软件运行太流畅的 Bug.
|
7
xinghen57 2022-02-15 19:14:01 +08:00 via iPhone
@yulon 你的回答逻辑不太对。多用户非管理员是没有 program files 的写权限。所以非管理员的便携软件也没法解压(安装)到 program files 下。
便携软件完全可以把配置文件放在 exe 的目录下,比如都在 appdata 下。 op 可以看看程序的安装目录,或者安装脚本,应该就能找到答案了。 |
8
ragnaroks 2022-02-15 20:30:19 +08:00
应用能跑估计就懒得改良安装流程了
说个偏的,有的人开发思维比较老,属于能跑就不会去动,windows 最新的 WCT 里面的 MVVM Toolkit 还有 使用 code behind 的示例代码 |