我正在使用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在批处理文件运行完毕之前不会返回。
我还根据链接将自定义操作添加到操作文本列表中,并将其与字符串相关联。
应该正常工作吗?
其他人都经历过这种情况吗?
答案 0 :(得分:1)
首先,你需要刷新你的Windows安装程序,因为如果你已经将一个动作从提交更改为延迟,那对你没关系,那么你已经做了一些不寻常的事情。延迟操作适用于以某种与安装相关的方式修改系统的操作。提交操作是完成关联的延迟操作已完成的任何工作(例如,延迟操作修改某些系统文件。提交操作将删除未修改的系统文件的备份)。此外,如果您有延迟操作,那么您还应该有一个回滚操作,如果用户取消安装或失败,则撤消延迟操作所做的任何操作。
以下两个链接可帮助您指明正确的方向:
http://www.installsite.org/pages/en/isnews/200108/index.htm
其次,如果所有自定义操作都是在进度对话框中更新操作文本,那么根本不需要它。 Flexera不记录此内容,但您可以为通过直接编辑器构建的任何自定义操作设置操作文本。为此,请在“ActionText”表中添加条目,其中“Action”列是自定义操作的名称,“Description”列是您要显示的文本。
答案 1 :(得分:-2)
确定,
所以我发现这篇文章:http://community.flexerasoftware.com/archive/index.php?t-82772.html,基本上说由于我的自定义操作设置为提交执行,因此安装在运行时已经有效完成,因此更新进度没有意义文本。
因此我的情况修复是将我的自定义操作移到InstallFinalize之前并切换到'延迟执行'。
希望这可能有助于某人。