【问题标题】:InstallShield (Windows Installer) Action Text not being updated for Custom ActionInstallShield (Windows Installer) 操作文本未针对自定义操作进行更新
【发布时间】:2012-08-26 00:18:14
【问题描述】:

我正在使用 installshield 为产品开发安装程序,但我在为我的自定义操作更新 ActionText(当前操作描述)时遇到问题。

我在此处执行了以下步骤:http://helpnet.flexerasoftware.com/installshield17helplib/ActionTextSettings.htm,这非常有意义,应该可以工作,但我的自定义操作不会更新 UI 中的操作文本。

我在想,因为我的自定义操作运行并等待一个长时间运行的进程结束,所以它可能会阻塞负责更新操作文本的线程。

现在我写了,好像没什么意思,但是不知道还有什么办法!

自定义操作的主要细节是:

Filename & Command line: wscript.exe "invisible.vbs" "longrunningbatch.bat"
Return Processing:       Synchronous
In-Script Execution:     Commit Execution in System Context

invisible.vbs 包含:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, True

上面的行应该隐藏 shell 窗口,'True' 确保 shell 在批处理文件完成运行之前不会返回。

我还根据链接将自定义操作添加到操作文本列表中,并将其与字符串相关联。

应该可以吗?

还有其他人经历过这种情况吗?

【问题讨论】:

    标签: user-interface progress-bar windows-installer installshield installshield-2010


    【解决方案1】:

    首先,您需要重新了解您的 Windows 安装程序,因为如果您将操作从提交更改为延迟,并且您没问题,那么您就做了一些不寻常的事情。延迟操作适用于以某种与安装相关的方式修改系统的操作。提交操作是为了完成相关延迟操作已完成的任何工作(例如,延迟操作修改了某些系统文件。提交操作删除了未修改的系统文件的备份)。此外,如果您有一个延迟操作,那么您还应该有一个回滚操作,以在用户取消安装或安装失败时撤消延迟操作执行的任何操作。

    以下两个链接应该可以帮助您指明正确的方向:

    http://blogs.flexerasoftware.com/installtalk/2011/10/i-take-it-all-back-using-windows-installer-msi-rollback-actions.html

    http://www.installsite.org/pages/en/isnews/200108/index.htm

    其次,如果自定义操作所做的只是更新进度对话框中的操作文本,那么您根本不需要它。 Flexera 没有记录这一点,但您可以为通过直接编辑器构建的任何自定义操作设置操作文本。为此,请在“ActionText”表中添加条目,其中“Action”列是您的自定义操作的名称,“Description”列是您要显示的文本。

    【讨论】:

    • 感谢您的回复(比其他一些不应该被提及并且两次否决我的问题和回答的人更有礼貌):)。您完全正确,如果我可以将有问题的操作从提交移到延迟执行,这是一个问题,但在这种情况下,它实际上应该始终处于延迟执行状态。此外,您对回滚操作的权利。我也已经准备好了! :) 一般来说,我对 IS 非常了解,显然不如一些,因此完全欢迎帮助和建议。
    • 另外,自定义操作不仅仅是更新文本,这有点奇怪,但感谢您的建议。实际上,自定义操作会安装打印机驱动程序和打印机。
    【解决方案2】:

    好的,

    所以我找到了这个帖子:http://community.flexerasoftware.com/archive/index.php?t-82772.html,它基本上是说,由于我的自定义操作设置为提交执行,安装在运行时实际上已完成,因此更新进度文本没有意义。

    因此,针对我的情况的解决方法是将我的自定义操作移到 InstallFinalize 之前并切换到“延迟执行”。

    希望这可能对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多