[英]How to make a System.Configuration.Install.Installer to get a variable from the Setup project?
[英]Reboot system from Setup project
我正在使用Visual Studio创建一个安装项目。 我想在安装成功完成后重启系统。
我想要一次性的努力。 我不希望每次使用任何外部工具/实用程序修改设置,然后再将其提供给客户端。
我可以调整安装项目本身吗?
我怎样才能做到这一点?
试试这个:
在单独的解决方案中创建一个空的合并模块项目并构建它。 这将在项目的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.