繁体   English   中英

从安装项目重新启动系统

[英]Reboot system from Setup project

我正在使用Visual Studio创建一个安装项目。 我想在安装成功完成后重启系统。

我想要一次性的努力。 我不希望每次使用任何外部工具/实用程序修改设置,然后再将其提供给客户端。

我可以调整安装项目本身吗?

我怎样才能做到这一点?

您可以使用ORCA执行此操作。

有关详细信息,请参阅此Microsoft HOW TO文章:

http://support.microsoft.com/kb/827020

试试这个:

在单独的解决方案中创建一个空的合并模块项目并构建它。 这将在项目的Debug或Release文件夹中创建一个msm文件。

编辑Orca中产生的MSM -设置重启=强制属性如图所示这里 你只需要这样做一次。

在主解决方案中,将合并模块添加到安装项目并构建它。 由于合并模块是单独构建的,因此它将保留reboot属性并将其合并到您的MSI中。

请不要让我失望,但我不会回答您的具体问题,但这是一种在msi安装后重启PC的方法。

使用WiX ,VS内置设置更加灵活,VS有一个插件。

如果您使用WiX,则这是启动重新启动的代码。

<InstallExecuteSequence>
  <ScheduleReboot After='InstallFinalize' />
</InstallExecuteSequence>

或者,您可以为VS安装项目创建一个转换,该转换仅包含用于启动重新启动的其他条目,然后您构建项目的任何时候都需要执行转换,您可以将其发送给批处理文件或类似的客户。

ps请记住,发出shell命令作为自定义操作并不是最好的方法。 这将导致计算机重新启动并且不返回正确的退出代码3010,因此如果有人试图捕获退出代码或在命令行上执行/ norestart,则shell命令将忽略此操作。

编辑一旦你创建了一个msi文件,用orca打开它,然后在表格中添加必要的更改到schedulereboot。 将更改保存为转换,然后只要msi文件没有显着变化,您就可以在每次运行时将转换应用到msi。

Personaly我不想这样做,因为它是一个额外的步骤,你应该能够在源头做到这一点。

要在orca中添加重新启动序列,请转到InstallExecuteSequence表并找到InstallFinalize条目。 添加一个名为ScheduleReboot的新条目,并在序列列中输入一个比InstallFinalize阶段的序列大1的数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM