【问题标题】:WIX Installer do not run C# process properlyWIX 安装程序无法正确运行 C# 进程
【发布时间】:2019-02-27 19:56:41
【问题描述】:

我们有一个大型 WIX 安装程序。安装后,应该运行大约 2800 个脚本来升级数据库。为此,创建了一个特殊的应用程序。它只是进入 SQL 机器,安装 SQL SMO 和 SQL Sys Clr Types 等先决条件,并执行脚本。这个小应用程序在 WIX 的自定义操作中运行。从逻辑上讲,它应该以提升的权限运行。在这个自定义操作中,我使用 c# Processes 来启动应用程序。但是,我已经尝试了所有方法,但应用程序仍然无法正常工作。它打开应用程序并且应用程序尝试安装先决条件并退出 - 没有安装任何东西。我试过的: 1. 以提升的权限运行进程(process.StartInfo.UseShellExecute = true) 2. 以用户权限运行进程(标准输入/输出,UseShellExecute=false) 3. 使用批处理文件运行应用程序。

整体流程如下: 安装程序以提升的权限运行 -> 安装后,运行特殊应用程序以升级数据库 -> 应用程序安装先决条件 -> 应用程序执行脚本。

有趣的是,当我使用 cmd 手动操作时,应用程序可以正常工作。但是,当安装程序的自定义操作打开 cmd.exe(c# 进程)并且它仍在等待时,通过 cmd 手动打开应用程序不起作用。换句话说,我有安装程序打开的 cmd(具有提升的权限)和另一个由我自己手动打开的 cmd。然后,手动运行应用程序不起作用。一旦我关闭安装程序打开的 cmd,并通过我自己打开的 cmd 手动运行应用程序,然后一切正常,一切正常。

我需要帮助我该如何解决这个问题?

附:安装程序的先决条件不能单独提取和安装。我们没有升级数据库应用程序的源代码。

【问题讨论】:

    标签: c# cmd process wix installation


    【解决方案1】:

    经过一番研究,我发现 Windows 无法同时运行两个 MSI,因此,第二个 MSI 静默退出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      相关资源
      最近更新 更多