Gau*_*rav 5 installation wix burn
我使用维克斯刻录安装每个先决条件我们的项目中,我已经使用ManagedBootstrapperApplicationHost有自定义UI,我一直在关注可以从维克斯源代码项目创建我的托管WPF应用程序..
现在的问题是它显示的Progress(消息)与我们在内置UI中使用的进度消息不匹配--WixStandardBootstrapperApplication.RtfLicense
基本上我使用Wix源代码中的以下代码
private void ExecuteMsiMessage(object sender, ExecuteMsiMessageEventArgs e)
{
lock (this)
{
this.Message = e.Message;
e.Result = this.root.Canceled ? Result.Cancel : Result.Ok;
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用与普通进度对话框相同的显示...我是否必须单独设置来自其他方法的消息,如PlanPackage等.
wixstdba今天不显示动作数据进度消息.有人在谈论在wix-devs邮件列表中添加该功能,但尚未发生.这只是将你在托管案例中的代码添加到wixstdba(尚未拥有它)的问题.
如果您只想以wixstdba的方式显示正在安装的软件包的名称,那么您将需要处理Engine.OnCachePackageBegin()和Engine.ExecutePackageBegin()回调.这些回调告诉您何时开始下载并随后安装包.作为回调的args的一部分,您将获得包ID.
要获得友好的显示名称,您可以阅读BootstrapperApplicationData.xml自动包含在Bootstrapper Application .dll旁边的名称.有些WixPackageProperties元素提供了很多关于包中包的信息,包括DisplayName.
---对不起,以下是对未提问的问题的答案.---
Engine.ExecuteMsiMessage()当Windows Installer显示消息(如操作数据或提示用户输入的请求)时,将调用回调.通过三种不同的回调提供进展.
您可以通过Engine.Progress回调获得整体进度.这是一个非常粗糙的进度,基本上随着每个包的缓存和执行而移动.
您可以通过以下方式获得整体和单个包装进度Engine.CacheAcquireProgress.在每个包下载/复制并验证放置在包缓存中时,此进展会发生变化.
您可以通过Engine.ExecuteProgress回调获得整体和单个包的进度.安装/修复/卸载每个软件包时,此进度会发生变化.
因此,它Engine.Progress向您显示总体进度,并且对于单个进度条非常容易使用,但进度条不会非常顺利地移动.通过添加Engine.CacheAcquireProgress到您可以获得更顺畅的整体进度Engine.ExecuteProgress.注意:这将为您提供一个到200的进度条.
您可以看到WixBA如何在文件中处理所有这些src\Setup\WixBA\ProgressViewModel.cs.
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |