与Wix 3.0一步一步的ngen

时间:2009-09-24 10:48:44

标签: .net installer wix ngen

我们使用Wix为我们的.NET应用程序构建安装程序,并且正在移植到Wix 3.0。

我们的应用程序包括几个.NET程序集(与.NET应用程序一样),最后的安装程序步骤是确定这些程序集。这很重要,因为我们的应用程序需要大约两倍的时间来启动非ngen的组件。

不幸的是,ngening步骤需要几分钟时间,我们希望为用户提供安装程序仍在工作的一些视觉反馈(至少有一位用户认为安装程序崩溃了!)。我们想要将ngening移动到后台,因为这会使初始用户体验变得更糟 - 我们的应用程序启动速度非常慢。

我们想要做的是单独使用程序集,并在每个程序集完成时通过安装程序(通过消息和进度条)向用户报告。虽然让Wix很容易做到,但将它移到背景上会很容易,我们看不到一种直接的方式来实现我们想要的东西。任何好的想法或技巧?

(我们的应用程序与.NET 2.0 SP1兼容,因此我们不希望依赖.NET 3+中的任何内容来实现此目的。)

2 个答案:

答案 0 :(得分:3)

我不知道NGen提供了反馈机制,以便逐个文件(或其他方式)报告进度。即使它确实如此,Windows Installer在InstallFinalize期间向GAC提交程序集这一事实意味着没有机会让CustomAction(如WiX NGen CustomAction)发送进度。基本上,进度条已经是“100%”(虽然Windows Installer中的进度条不算精确)。

所以,最终,我认为答案是这是对WiX NGen CustomActions的一个很棒的功能请求,但我不确定它是否可以实现。

[更新]:傻,我想我应该先看一下代码。虽然文件名未通过ActionText发布,但会发送进度消息。这似乎是一个合理的要求。但是,我上面所说的可能仍然适用于GAC的组件。

答案 1 :(得分:2)

我在搜索WiX和ngen时发现了这篇文章。

<强> NGen: Creating Setup Projects

我希望这会对你有所帮助。