gpt4 book ai didi

.net - 使用 Wix 3.0 逐步执行 ngen

转载 作者:行者123 更新时间:2023-12-04 09:41:40 25 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

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

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

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

关于.net - 使用 Wix 3.0 逐步执行 ngen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1470917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com