我不愿意问这个问题,因为我知道已经有很多问题,有些问题与我想做的非常接近:
> Reboot system from Setup project
> prompt to reboot computer after installation completed
第一个似乎表明没有外部软件是不可能的,但是第二个问题给出的答案似乎正是我想要的.但是,当我建议设置REBOOT = Force时,我并不真正理解它的含义.
我通读了有关属性的链接文章,但我不知道这是否只是MSDN的编写方式,但我不认为应该在设置项目中使用它们是更明智的选择.我对C#和特别是Setup Project还是很陌生.
在属性之外,使用最少的外部依存关系似乎最容易做的一件事情就是创建一个小的C#应用程序,该程序除了关闭系统外什么也不做.然后将“自定义操作”添加到“提交”部分以调用此应用程序.在我看来,这似乎是一个矫kill过正,是否意味着无用的应用程序必须作为安装的一部分并留在用户计算机上?
我发现了很多有关使用WIX或Orca的东西,但是我有不使用它们的理由(至少因为我必须为使用的任何软件编写业务案例).我什至没有尝试创建一个非常复杂的安装程序,只是复制了一些新的EXE,然后重新启动以确保在启动时使用了新的EXE.尽管我现在认为重新启动的麻烦可能不值得,仅将新exe称为自定义操作即可.
解决方法:
REBOOT是预定义的Windows Installer属性:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx
安装程序属性从MSI数据库存储在Property table中.因此,您只需使用以下信息在属性表中添加新行:
>物业-重新启动
>价值-力量
您可以在此处阅读有关安装程序属性的更多信息:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa372432(v=vs.85).aspx?ppud=4
请注意,Visual Studio安装项目不支持设置属性值.因此,您可以使用Orca编辑MSI以添加新行,也可以切换到其他设置创作工具.