【问题标题】:Multiple restarts after installtion安装后多次重启
【发布时间】:2012-02-01 14:17:45
【问题描述】:

我的 c# 应用程序会启动一个安装程序,该安装程序可能会安装多个补丁。安装程序关闭后,我的应用程序可能需要为每个安装的补丁重新启动系统多次。最好的方法是什么?

目前我正在使用/f /l 参数调用关机过程以进行单次重启。

【问题讨论】:

  • 为什么需要多次重启?为什么不安装所有补丁然后重新启动一次?
  • 我同意@M.Babcock,但我会更进一步。为什么用户模式应用程序永远必须重新启动整个系统?只有 Windows 组件才应该这样做,甚至它们并不都需要它。
  • @CodyGray - 我原则上同意,但我知道我安装的大多数应用程序都需要重新启动(无论是否有保证)。如果这确实是一个安装程序过程,那么我可以看到他们的意思......肯定不会多次。
  • 自从我从 Windows 98 升级以来,我认为我没有安装需要重新启动的应用程序(除了 Visual Studio 之类的安装系统组件的应用程序)。即使我的记忆模糊,关键是这应该是非常罕见的,而且我怀疑大多数需要重启的应用程序只是因为开发人员的懒惰,而不是任何真正的技术需要。
  • 感谢您的回复。这些是操作系统更新,我只知道每个补丁都需要重新启动。

标签: c# .net


【解决方案1】:

FWIW,安装程序重新分发 Windows 更新通常是个坏主意。首先是许可问题(它们通常不可再分发),然后是您在获得修补客户计算机的所有权时创建的兔子洞问题。通常最好让您的安装程序检查会破坏您的应用的情况并在退出安装程序之前告知用户。

【讨论】:

    【解决方案2】:

    如果确实有必要,如果有任何剩余的补丁,您似乎可以在关闭之前设置 RunOnce 注册表项。

    在 C# 中设置键: http://msdn.microsoft.com/en-us/library/h5e7chcf.aspx

    Run 和 RunOnce 注册表项: http://msdn.microsoft.com/en-us/library/aa376977(v=vs.85).aspx

    【讨论】:

    • 感谢您的回复。我在想我是否可以在注册表中保留所需的重启次数,并在登录时减少每次重启时的计数。
    • 如果您正确使用 RunOnce,您甚至不需要计数。如果你需要做另一个补丁,只需在一个补丁完成时设置它。如果是最后一个,就不要设置了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2017-06-29
    • 2013-04-16
    • 2011-05-08
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多