我不想问这个问题,因为我知道有很多问题已经存在,有些问题非常接近我想要做的事情:
第一个似乎暗示没有外部软件就不可能,但第二个问题给出了一个看起来正是我想要的答案。但是,当我们建议设置REBOOT=Force
时,我并不真正理解它所指的是什么。
我阅读了有关属性的链接文章,我不知道它是否只是MSDN的编写方式,但我觉得我不应该如何使用它们。安装项目。我对C#以及特别是安装项目仍然相当新。
在属性之外,似乎下一个最简单的事情是使用最少的外部依赖项来创建一个小的C#应用程序,除了关闭系统之外什么都不做。然后将“自定义操作”添加到“提交”部分以调用此应用程序。这似乎对我来说太过分了,这是否意味着无用的应用程序必须是安装的一部分并留在用户机器上?
我发现很多关于使用WIX或Orca的东西,但我有理由不使用它们(至少因为我必须为 任何编写商业案例使用的软件)。我甚至没有尝试创建一个非常复杂的安装程序,它只是一些新的EXE被复制然后重新启动以确保在启动时使用新的EXE。虽然我现在认为重新启动麻烦可能不值得,只需将新的exe调用为自定义操作。
答案 0 :(得分:4)
REBOOT是预定义的Windows Installer属性: http://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx
安装程序属性存储在MSI数据库的Property table中。因此,您只需在Property表中添加一个包含以下信息的新行:
您可以在此处详细了解安装程序属性: http://msdn.microsoft.com/en-us/library/windows/desktop/aa372432(v=vs.85).aspx?ppud=4
请注意,Visual Studio安装项目不支持设置属性值。因此,您可以使用Orca编辑MSI以添加新行或切换到其他设置创作工具。