gpt4 book ai didi

mysql - InstallShield 2014,自定义操作和在 MySQL 中执行 sql 文件

转载 作者:行者123 更新时间:2023-11-29 21:54:31 25 4
gpt4 key购买 nike

我正在为我们的产品构建一个运行良好的安装程序。我已成功构建自定义操作来安装我们的服务,包括 MySQL 服务器。

我遇到的问题是执行 sql 文件来构建架构结构。

我有一个使用 mysql.exe 和命令行参数的自定义操作: --port=### --user=### --password=### <[INSTALLDIR]db\EmptyStruct.sql

它尝试执行此操作,但在安装过程中弹出的 cmd 窗口仅运行 mysql.exe 命令行选项,这对我来说,它传递的命令行不正确。但是,如果我在安装后手动运行该命令,它就可以完美运行。

请问大家有什么想法吗?

最佳答案

我在这里做出一些假设:

  • 您有一个 Windows Installer exe 自定义操作,用于指定 mysql.exe 和命令行,如您所示
  • 您正在期待 [INSTALLDIR]db\EmptyStruct.sql 的内容重定向到 mysql.exe 的标准输入

这不会发生。在幕后,Windows Installer 的 exe 自定义操作支持使用 CreateProcess API 和此 API 将按字面意思解释命令行。然而重定向 <需要特殊处理才能实际执行重定向。

要获得该行为,您必须使用间接层。例如,您可以运行 cmd.exe作为 exe,并给它一个命令行,使其解释并运行命令行 mysql.exe --port= ... < "[INSTALLDIR]..." 。但是,如果您还没有显示命令提示符,这会导致出现命令提示符。如果您想避免这种情况,您可以编写一个自定义包装器来为您执行重定向,可以是 C++ DLL,也可以是 InstallScript 操作。

或者,如果有一个参数告诉 mysql.exe 从文件运行脚本,您可以传递该参数而不是使用重定向。我无法在快速网络搜索中找到此类参数的证据。

关于mysql - InstallShield 2014,自定义操作和在 MySQL 中执行 sql 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33299465/

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