【发布时间】:2012-05-15 08:34:18
【问题描述】:
我正在使用 WIX 工具包开发 Windows 安装程序,并且在安装过程中弹出 UAC 对话框需要永远(15-45 秒)。有什么办法可以加快速度吗?
【问题讨论】:
标签: deployment wix windows-installer installation wix3.5
我正在使用 WIX 工具包开发 Windows 安装程序,并且在安装过程中弹出 UAC 对话框需要永远(15-45 秒)。有什么办法可以加快速度吗?
【问题讨论】:
标签: deployment wix windows-installer installation wix3.5
感谢 joegrage 为我指明了正确的方向。这个技巧似乎是MSIFASTINSTALL 属性。
MSIFASTINSTALL 属性可用于减少安装大型 Windows Installer 程序包所需的时间。可以在命令行或属性表中设置该属性,以配置用户或开发人员确定对安装不重要的操作。
MSIFASTINSTALL 属性的值可以是以下值的组合。
值含义 ----- --------------------------------------------- -------------- 0 默认值 1 没有为此安装保存系统还原点。 2 仅执行文件成本核算并跳过检查其他成本。 4 减少进度消息的频率。
在 WIX 中,您可以像这样使用这些值的组合:
<Property Id="MSIFASTINSTALL" Value="3" />
可以在 this 博客文章中找到有关此属性的更详细的文章。
【讨论】:
每次使用 Windows Installer 安装软件时,都会在进行实际安装之前创建一个还原点。参考:http://msdn.microsoft.com/en-us/library/aa372060.aspx
您可以在注册表中将其关闭:http://msdn.microsoft.com/en-us/library/aa369758.aspx
【讨论】:
这是因为 Windows 正在检查包是否具有数字签名。
不幸的是数字签名验证算法不是很好。此外,其性能取决于封装尺寸。所以更大的包裹会有更长的延迟。
为避免延迟,您可以在 MSI 中添加一个简单的 EXE 引导程序。其目的是通过application manifest 请求提升并在其旁边启动 MSI。如果您没有在其中包含您的 MSI,则引导程序的大小会很小。所以数字签名校验会非常快。
【讨论】: