Nea*_*eal 40
这取决于。
如果正在安装的软件影响操作系统的一个组成部分,则需要重新启动。例如,操作系统的新内核。
在 Windows 系统上,它经常被使用,因为用户被认为太愚蠢而无法正确使用他们的计算机。例如,Microsoft在其网站上发布了有关如何更改用于网络的“节点类型”的详细信息,包括在需要重新启动网络服务时“重新启动计算机”的说明,详见此处。因为我们,作为用户太愚蠢而无法重新启动服务,我们被告知要重新启动一切。
对于某些软件,我得出的结论是,这是一种习惯,即使被告知这样做通常也没有必要。如果我不认为一个软件应该对操作系统做任何重大的事情,我往往不会打扰,也没有遇到任何问题(如果有问题,他们很容易解决)。
bry*_*yan 15
有时,某个软件所做的更改在计算机使用过程中无法生效。一些原因可能是 - 文件正在使用中,更改只能在计算机启动期间发生,可能存在安全问题,只能在计算机联网之前完成,也许病毒扫描程序会干扰安装。
有时,这只是开发人员草率的编程。
我相信还有更多。
Ian*_*ose 14
通常,当您安装新软件时,许多其他软件包使用的 dll(文件)需要升级到新版本。(在升级您已经安装的应用程序时,这种情况更有可能发生。)
如果 dll 正被正在运行的应用程序使用,它的一部分将被加载到内存中,其余的将在需要时从磁盘读取。因此,dll 将被锁定在磁盘上。(没锁就想问题!)
被锁定的 DLL 无法更新,因此安装程序会在下次重新启动机器时要求 Windows 用新版本替换 DLL。因此需要重新启动。
一些更好的安装程序会在运行安装程序之前告诉您应该关闭的应用程序,因此无需重新启动即可更新 DLL。 然而,这会使安装程序的 UI 更加复杂并导致更多的支持呼叫。
应用程序的安装程序还可以让应用程序保存其状态,关闭它自己,然后在 DLL 更新后重新启动。这只能在 DLL 由单个应用程序使用时完成。大多数自更新应用程序都这样做——当有很多用户时,这应该是大众市场应用程序的标准。
以上所有情况都可能导致难以测试的复杂逻辑。测试安装程序需要很长时间,因为您需要尝试猜测用户机器可能处于的每个状态。因此,安装程序通常最好简单且始终有效,即使它会导致用户重新启动几次.
由于安装程序重新启动,用户决定购买不同的应用程序的情况并不常见,因此供应商将时间(金钱)花在让用户购买他们的应用程序所需的工作上。
在安装了重新启动时自行解决的应用程序后,您多久遇到一次问题?想想许多用户打电话来解决问题的支持成本,只需重新启动即可解决。作为开发人员,即使您认为不需要它,在安装软件后总是让用户重新启动,这很快就会变得非常诱人。
大多数操作系统和软件都是在磁盘空间和内存花费大量资金的时代编写的。现在有一个举措,让应用程序拥有他们使用的所有 dll 的私有副本,因此可以升级橡皮擦,但会使用更多的存储空间。
在服务器上,这是通过“容器”完成的,但是“容器”不适用于桌面软件,因为您希望能够使用另一个应用程序访问一个应用程序保存的数据。(否则只需使用 iPhone。)
原因是因为如果你不这样做:你会崩溃。来自Raymond Chen:
即使你替换了一个正在使用的文件,系统中仍然可能有代码想要使用旧版本。例如,假设您有两个一起工作的文件:
- dll
- B.dll
您发布了更新这两个文件但
A.dll正在使用的补丁程序。没问题。您只需更换它们。结果,仍在使用的程序A.dll继续使用旧版本,但新程序将使用新版本。并且所有程序都获得新版本的B.dll.现在,一个使用
A.dll旧版本的程序决定调用一个函数。它自然期待旧版本的B.dll,但它得到了新版本。根据您对 所做的更改类型B.dll,此调用可能会起作用,也可能会崩溃。两个 DLL 都假定其伙伴来自相同的匹配集。
| 归档时间: |
|
| 查看次数: |
61522 次 |
| 最近记录: |