【发布时间】:2010-09-01 10:44:58
【问题描述】:
在安装我的应用程序时,如果机器上不存在 .NET 4.0,我还会安装 .NET 4.0 可再发行组件。
在 Windows-7 上,这有时(可能总是)会导致重新启动(不在 nsis 的控制范围内)。
我希望在重新启动后继续安装。
我应该感谢有关如何使用 nsis 解决这种情况的建议。
【问题讨论】:
在安装我的应用程序时,如果机器上不存在 .NET 4.0,我还会安装 .NET 4.0 可再发行组件。
在 Windows-7 上,这有时(可能总是)会导致重新启动(不在 nsis 的控制范围内)。
我希望在重新启动后继续安装。
我应该感谢有关如何使用 nsis 解决这种情况的建议。
【问题讨论】:
您可以使用RunOnce 注册表项。
NSIS 不支持重启管理器(但可能可以通过系统插件自己调用RegisterApplicationRestart)。
无论哪种方式,“重启命令”可能需要包含一个您可以检测到的参数,以便您的安装程序重新从头开始(使用GetParameters 和PageJump)。
【讨论】:
使用命令行开关/norestart调用 .net 安装程序
【讨论】:
如果您要安装其他需要已安装 .NET 4.0 的软件,则可能不适合使用 /norestart。例如,我在 Windows XP 上安装 .NET 3.5,然后安装 SQL Server 2008 R2。 SQL Server 2008 安装程序要求已安装 .NET 3.5,因此 /norestart 不是此处的选项 - 如果使用,SQL Server 2008 将不会安装。因此,Anders 建议使用 RunOnce 注册表项是我需要采用的解决方案。
【讨论】: