Wpf 使用installShield在基本MSI项目中设置可执行运行顺序

Wpf 使用installShield在基本MSI项目中设置可执行运行顺序,wpf,installshield,basic-msi,Wpf,Installshield,Basic Msi,我使用项目助手与InstallShield 2016 professional创建了一个基本MSI安装程序项目。我没有创建任何组件/功能(只创建了deafulkt功能)。 安装程序应该首先运行控制台应用程序(我是作为安装程序的一部分添加的,但不会安装),如果没有出现错误,只需将WPF应用程序(DLL和.exe)复制到客户端位置即可 理想情况下,在提出面试对话后,步骤如下: 如果他/她想继续,则提示已使用的用户 如果[否]关闭进程,如果[是],则显示一个自定义对话框,接受SQL连接字符串的三个字段

我使用项目助手与InstallShield 2016 professional创建了一个基本MSI安装程序项目。我没有创建任何组件/功能(只创建了deafulkt功能)。 安装程序应该首先运行控制台应用程序(我是作为安装程序的一部分添加的,但不会安装),如果没有出现错误,只需将WPF应用程序(DLL和.exe)复制到客户端位置即可

理想情况下,在提出面试对话后,步骤如下:

  • 如果他/她想继续,则提示已使用的用户
  • 如果[否]关闭进程,如果[是],则显示一个自定义对话框,接受SQL连接字符串的三个字段
  • 然后,使用给定的参数作为输入,运行console应用程序。控制台应用程序只运行一些SQL脚本,但不会安装,它是安装程序的一部分
  • 完成此步骤后(如何检查是否已完成且未发生错误?)复制project assistant中设置的文件(wpf.exe和DLL)
  • 在文档中,我了解到使用自定义操作可以运行可执行文件,但我无法理解或找到有关如何将参数(命令行除外)传递到控制台应用程序或获取控制台应用程序生成的最终状态的详细信息

    有人能建议我如何实现这些步骤吗

    更新

    在InstallShield中,可以在自定义操作之间创建属性,然后在需要的其他位置调用这些值,如:[PropertyName]

    我可以这样做,为可执行命令行参数添加三个属性:
    I=[DB\u CONN\u INSTANCE\u NAME]u=[DB\u CONN\u USER\u NAME]p=[DB\u CONN\u PWD]

    如何检查是否已完成且未发生错误

    控制台应用程序应返回ExitCode。0(零)表示成功,其他数字表示失败。在自定义操作(CA)属性中,您应该为“返回处理”属性选择“同步(检查退出代码)”。由于您希望在安装时运行此CA,因此应该为“脚本内执行”属性选择“延迟执行”。您至少应该编写条件,因为您希望这种情况仅在安装期间发生,而不是在用户删除产品时发生,是吗?在这种情况下,请完成“安装执行条件”。如果您设置了以上所有内容,我相信此CA的MSI类型编号将为1026

    在哪里可以找到更详细的文档

    给你:

    编辑:

    如果我测试应用程序,我不会得到任何控制台应用程序运行的提示。另外,如果可执行文件成功,我如何指定继续执行第二个自定义函数(应该安装WPF应用程序)

    您需要设置“Install Exec Sequence”以便在特定时间运行CA。延迟的CA类型必须安排在“InstallFiles”之后的某个位置。有关如何安排CA的详细信息,请参阅:。当您使用“Synchronous(Check exit code)”属性计划控制台应用程序CA时,安装程序将在CA退出时等待,并且仅在继续序列之后。您的第二个CA应该安排在第一个CA之后。非常简单,您肯定走在正确的轨道上

    是否可以调试基本MSI的步骤

    我不知道你在问什么。据我所知,您正在使用InstallShield Studio,因此请运行调试并逐步完成。如果您询问调试CA本身,您应该查看以下资源:

    如何检查是否已完成且未发生错误

    控制台应用程序应返回ExitCode。0(零)表示成功,其他数字表示失败。在自定义操作(CA)属性中,您应该为“返回处理”属性选择“同步(检查退出代码)”。由于您希望在安装时运行此CA,因此应该为“脚本内执行”属性选择“延迟执行”。您至少应该编写条件,因为您希望这种情况仅在安装期间发生,而不是在用户删除产品时发生,是吗?在这种情况下,请完成“安装执行条件”。如果您设置了以上所有内容,我相信此CA的MSI类型编号将为1026

    在哪里可以找到更详细的文档

    给你:

    编辑:

    如果我测试应用程序,我不会得到任何控制台应用程序运行的提示。另外,如果可执行文件成功,我如何指定继续执行第二个自定义函数(应该安装WPF应用程序)

    您需要设置“Install Exec Sequence”以便在特定时间运行CA。延迟的CA类型必须安排在“InstallFiles”之后的某个位置。有关如何安排CA的详细信息,请参阅:。当您使用“Synchronous(Check exit code)”属性计划控制台应用程序CA时,安装程序将在CA退出时等待,并且仅在继续序列之后。您的第二个CA应该安排在第一个CA之后。非常简单,您肯定走在正确的轨道上

    是否可以调试基本MSI的步骤


    我不知道你在问什么。据我所知,您正在使用InstallShield Studio,因此请运行调试并逐步完成。如果您询问有关调试CA本身的问题,您应该查看以下资源:

    您可以在上参考此链接您可以在上参考此链接感谢此链接,它给了我一个关于从何处开始的好提示,但我的情况略有不同。我无法在设置中提供命令行参数(它们是SQL连接字符串的一部分),我会更新问题以反映细节。@Luca,那么您不需要从命令行调用它们。只需创建一个windows窗体或WPF应用程序。将可执行文件用作自定义操作。添加自定义操作。该操作可以处理用于确认的消息和用于输入详细信息的表单。然后使用自定义操作应用程序运行scrip