我们使用Wix为我们的.NET应用程序构建安装程序,并且正在移植到Wix 3.0。
我们的应用程序包括几个.NET程序集(与.NET应用程序一样),最后的安装程序步骤是确定这些程序集。这很重要,因为我们的应用程序需要大约两倍的时间来启动非ngen的组件。
不幸的是,ngening步骤需要几分钟时间,我们希望为用户提供安装程序仍在工作的一些视觉反馈(至少有一位用户认为安装程序崩溃了!)。我们不想要将ngening移动到后台,因为这会使初始用户体验变得更糟 - 我们的应用程序启动速度非常慢。
我们想要做的是单独使用程序集,并在每个程序集完成时通过安装程序(通过消息和进度条)向用户报告。虽然让Wix很容易做到,但将它移到背景上会很容易,我们看不到一种直接的方式来实现我们想要的东西。任何好的想法或技巧?
(我们的应用程序与.NET 2.0 SP1兼容,因此我们不希望依赖.NET 3+中的任何内容来实现此目的。)
答案 0 :(得分:3)
我不知道NGen提供了反馈机制,以便逐个文件(或其他方式)报告进度。即使它确实如此,Windows Installer在InstallFinalize期间向GAC提交程序集这一事实意味着没有机会让CustomAction(如WiX NGen CustomAction)发送进度。基本上,进度条已经是“100%”(虽然Windows Installer中的进度条不算精确)。
所以,最终,我认为答案是这是对WiX NGen CustomActions的一个很棒的功能请求,但我不确定它是否可以实现。
[更新]:傻,我想我应该先看一下代码。虽然文件名未通过ActionText发布,但会发送进度消息。这似乎是一个合理的要求。但是,我上面所说的可能仍然适用于GAC的组件。
答案 1 :(得分:2)