Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WiX工具集安装程序中减慢安装进度栏?_Wix_Installation_Windows Installer_User Experience - Fatal编程技术网

如何在WiX工具集安装程序中减慢安装进度栏?

如何在WiX工具集安装程序中减慢安装进度栏?,wix,installation,windows-installer,user-experience,Wix,Installation,Windows Installer,User Experience,嗯,我不是在开玩笑 我的客户希望我放慢安装过程。理由很清楚:如果客户为一款软件支付的价格与一辆中产阶级汽车的价格一样,他们的期望值会超过3秒。安装过程 有什么想法吗?我在测试中使用的一种技术是编写一个自定义动作DLL,它交替休眠并增加进度条。然后它向后运行,因为我在测试外部UI,但您可以跳过这一部分。有关C/C++API,请参阅-特别是查看INSTALLMESSAGE\u PROGRESS和备注部分,如果您想显示正在更改的进度文本,还可以查看INSTALLMESSAGE\u ACTIONSTAR

嗯,我不是在开玩笑

我的客户希望我放慢安装过程。理由很清楚:如果客户为一款软件支付的价格与一辆中产阶级汽车的价格一样,他们的期望值会超过3秒。安装过程


有什么想法吗?

我在测试中使用的一种技术是编写一个自定义动作DLL,它交替休眠并增加进度条。然后它向后运行,因为我在测试外部UI,但您可以跳过这一部分。有关C/C++API,请参阅-特别是查看
INSTALLMESSAGE\u PROGRESS
和备注部分,如果您想显示正在更改的进度文本,还可以查看
INSTALLMESSAGE\u ACTIONSTART
INSTALLMESSAGE\u ACTIONDATA


我无法想象有意识地将其应用到实际安装中(因此可能会给它一个容易禁用的条件),但它确实让我想起了我曾在一个演示exe上放置了几秒钟的启动屏幕,而加载时间不足一秒…

考虑到我们所有人都试图以某种方式加快进程,这是一个奇怪的请求。不过有道理:)

无论如何,请尝试使用安静执行自定义操作

大概是这样的:

<Property Id="QtExecCmdLine" Value="command line to run"/>
<CustomAction Id="QtExecExample" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check"/>
.
.
.
<InstallExecuteSequence>
  <Custom Action="QtExecExample" After="TheActionYouWantItAfter"/>
</InstallExecuteSequence>

.
.
.
将字符串“commandline to run”更改为上面的命令行,以执行类似于“ping-n5localhost”的操作-n5将尝试执行ping 5次。或者您也可以使用


希望有帮助。

您可以转向另一个方向:在安装结束时自动启动应用程序,并显示一条消息:

初始设置已完成。您可以立即开始使用该应用程序 走开。附加功能将在后台安装为 需要


与Office 365安装程序进行比较。(但一定要提供一个管理安装,它将最终执行“完整安装”。

安装体验和应用程序启动是营销工具,从技术角度看,设置本身并非如此。它只是一个文件转储和一些注册表修改,您需要让所有营销人员远离对其技术合理性的干扰。其他一切都由他们来定义,以销售产品

重要的是要记住,设置体验是用户对产品质量的第一次体验。如果它失败了,就根本无法对产品进行评估。这是软件开发中最昂贵的错误,如果你胡乱摆弄,这很容易做到

按照Tom Blodget的建议,让第一次应用程序发布“更智能”,提供更多关于如何使用该软件、它提供了哪些功能以及诸如此类的信息,并保持设置简单。我已经看到了应用程序自动化与向导式数据生成的成功应用,用于展示应用程序功能、带有在线帮助和画外音的应用程序窗格。各种各样的东西,可以帮助人们快速工作

关于软件部署的一些抽象概念,作为一个主题,需要认真对待,否则将成为优秀软件的破坏者。这也是一个会给软件的成功带来很多问题的话题


最后,这一点很重要,公司要求正确安装您的软件,以便在其网络上批准您的软件。事实上,适当的静默安装程序和部署策略可以使您的软件优于其他类似软件。这一点的重要程度因软件的关注点和用户类型而异,但从长远来看,必须始终正确地进行设置,以免成为营销和销售问题所有这些的最后一个结论是,如果您的软件是为大公司设计的,您不应该在高级GUI上浪费您的设计精力,因为它可能永远不会用于大规模部署场景。相反,您应该使用公共属性对安装程序进行参数化,这些属性可以在命令行或通过转换进行设置,以便在不以交互方式运行安装程序的情况下轻松控制安装程序。请参阅本文:。

只是一个想法:您可以交换安装过程中显示的对话框,显示一个公告牌控件,而不是减慢安装过程/进度栏。通过这种方式,客户可以得到娱乐,您可以展示/销售您的产品,当您告诉它停止时,安装就完成了(尽管“真正的”安装可能在几秒钟后就已经完成)。使用@Michael Urman建议的一些自定义操作来丰富此安装体验(因此系统似乎很忙),您就完成了。虽然我个人认为短安装是一个大功能…但你可以选择另一个方向:在安装结束时自动启动应用程序,并显示一条消息,说明:,“初始设置已完成。您可以立即开始使用该应用程序。其他功能将根据需要安装在后台。”与Office 365安装程序进行比较。(但请确保提供管理安装,最终执行“完整安装”。)@ TomBlodget:我会把它标记成一个答案。安装后我自动启动应用程序,在第一次启动时,我们用一个漂亮的解释性文本来显示花哨的进度条,它需要几个分钟。听起来像是一个好主意。但是我从来没有真正使用过C++ API……你熟悉C*吗?也许你可以详细阐述一下。如何在.NET(pInvoke?)中使用它,以及如何在WiX中使用生成的dll?如果这不是太多要求的话…我没有使用过它,但听说过关于DTF的好东西。有
MSIProcesmes