4

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

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

不幸的是,生成步骤需要几分钟,我们想给用户一些视觉反馈,说明安装程序仍在工作(至少有一个用户认为安装程序已经崩溃了!)。我们不想只是将 ngening 移到后台,因为这会使初始用户体验变得更糟——我们的应用程序启动起来会很慢。

我们想做的是单独生成程序集,并在每个程序完成时在安装程序中向用户报告(通过消息和进度条)。虽然让 Wix 进行生成很容易,将其移到背景上也很容易,但我们看不到实现我们想要的直接方法。有什么好的想法或技巧吗?

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

4

2 回答 2

3

我不知道 NGen 提供了一种反馈机制,以便可以逐个文件(或以其他方式)报告进度。即使这样做了,Windows Installer 在 InstallFinalize 期间将程序集提交给 GAC 的事实意味着 CustomAction(如 WiX NGen CustomAction)没有机会发送进度。本质上,进度条已经是“100%”(尽管 Windows Installer 中的进度条并不准确)。

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

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

于 2009-09-24T15:30:24.397 回答
2

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

NGen:创建设置项目

我希望这能帮到您。

于 2011-03-17T09:00:54.217 回答