芯片|为什么安装程序对于文件覆盖不会发出提示?

芯片|为什么安装程序对于文件覆盖不会发出提示?

又要讲讲历史了老哥们Windows 95系统安装程序在进行系统安装的时候 , 如果发现用户电脑上已经存在相同文件名的文件且版本更新 , 它并不会询问用户是否希望保留新版本的文件 , 或者使用旧版本的文件覆盖 。
为什么?
因为我们发现 , 给出用户提示是一个糟糕的主意 , 因为有时候用户根本不知道这个文件是干啥的 , 也不清楚到底应该怎么处理这种情况 。
假如你正在安装Windows 95 , 系统弹出了一个文件冲突提示框:”准备安装的操作系统文件已经存在于系统中 , 且版本更新 , 是否要保留新版本的文件?” 这个时候 , 你怎么处理呢?
【芯片|为什么安装程序对于文件覆盖不会发出提示?】如果你像大多数人一样 , 你可能会说:”嗯 , 看起来保留新版本会更加稳妥一些” , 然后你点击了保留 。
但是过了一小会 , 你又会得到相同的提示信息 , 提示另一个文件也有这种情况 。
经过多次这样的提示 , 你可能有点担心了 。 为什么系统一直提示我相同的问题呢?是不是有啥问题了?这个时候 , 通常表明 , 你执行了一个错误操作 , 而操作系统不停地给你机会来修正这个错误 。 就像那些电影大片 , 在核弹发射之前 , 操作人员会被要求多次确认 。
这个时候 , 你可能说想着 , 那我就点击”不保留”呗 。 一般点击否定式按钮都比较安全 , 对吧?
当处理完多个提示信息之后(每次都点击”不保留”按钮) , 安装程序终于完成了 。 然后系统重启后 , 用户喜提蓝屏一台 。
这是为啥?因为这些被提示的文件和显卡驱动有关 。 当保留这些文件中的一部分 , 而不保留其他部分时 , 因为文件版本的不匹配而导致了后面的蓝屏 。
经过这次的教训 , 我们老实了 。 新版本的安装程序不会再向用户询问这种问题了 。 它总是选择使用程序包中的文件覆盖现有版本 。 当然了 , 你会因此丢失一些新的特性 , 但是至少你能顺利装好系统并成功启动 。 然后 , 你就有机会打开Windows自动更新来更新驱动文件到最新版本 。
最后需要注意 , 以上规则对于热修补(hotfixes)和服务更新包(Service Packs)不适用 , 也即安装这些更新的时候 , 会采用另外一种搞法 。
总结开发你自己的程序的时候 , 需要明白 , 你的用户可能不是计算机专业人员 , 系统不要设计得太复杂 。
当然 , 也不要太过于简单了 , 就像TopomelBox那样 。
最后Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一 , 里面有很多关于Windows的小知识 , 对于广大Windows平台开发者来说 , 确实十分有帮助 。
本文来自:《Why doesn’t Setup asks you if you want to keep newer versions of OS files?》