WIX 安装程序未 运行 C# 正确处理
WIX Installer do not run C# process properly
我们有一个很大的 WIX 安装程序。安装后,大约有 2800 个脚本应该 运行 升级数据库。为此,创建了一个特殊的应用程序。它只是转到 SQL 机器,安装 SQL SMO 和 SQL Sys Clr Types 等先决条件,然后执行脚本。这个小应用程序在 WIX 的自定义操作中 运行。从逻辑上讲,它应该 运行 具有更高的权限。在此自定义操作中,我使用 c# 进程来启动应用程序。但是,我已经尝试了所有方法,应用程序仍然无法正常运行。它打开应用程序,应用程序尝试安装先决条件并退出 - 没有安装任何东西。我试过的:
1. 运行 具有提升权限的进程 (process.StartInfo.UseShellExecute = true)
2. 运行 具有用户权限的进程(standardinput/output with UseShellExecute=false)
3. 运行 带有批处理文件的应用程序。
整体流程应该是这样的:
安装程序 运行 具有提升的权限 -> 安装后,特殊应用程序 运行 升级数据库 -> 应用程序安装先决条件 -> 应用程序执行脚本。
有趣的是,当我使用 cmd 手动执行时,应用程序运行正常。但是,当安装程序的自定义操作打开 cmd.exe(c# 进程)并且它仍在等待时,则无法通过 cmd 手动打开应用程序。换句话说,我有安装程序打开的 cmd(具有提升的权限)和我自己手动打开的另一个 cmd。然后,手动 运行ning 应用程序不起作用。一旦我关闭安装程序打开的 cmd,并通过我自己打开的 cmd 手动 运行 应用程序,然后又一切正常,一切正常。
我需要帮助如何解决这个问题?
P.S。无法单独提取和安装安装程序的先决条件。我们没有升级数据库应用程序的源代码。
经过一些研究,我发现 Windows 不能同时 运行 两个 MSI,因此第二个 MSI 正在静默退出。
我们有一个很大的 WIX 安装程序。安装后,大约有 2800 个脚本应该 运行 升级数据库。为此,创建了一个特殊的应用程序。它只是转到 SQL 机器,安装 SQL SMO 和 SQL Sys Clr Types 等先决条件,然后执行脚本。这个小应用程序在 WIX 的自定义操作中 运行。从逻辑上讲,它应该 运行 具有更高的权限。在此自定义操作中,我使用 c# 进程来启动应用程序。但是,我已经尝试了所有方法,应用程序仍然无法正常运行。它打开应用程序,应用程序尝试安装先决条件并退出 - 没有安装任何东西。我试过的: 1. 运行 具有提升权限的进程 (process.StartInfo.UseShellExecute = true) 2. 运行 具有用户权限的进程(standardinput/output with UseShellExecute=false) 3. 运行 带有批处理文件的应用程序。
整体流程应该是这样的: 安装程序 运行 具有提升的权限 -> 安装后,特殊应用程序 运行 升级数据库 -> 应用程序安装先决条件 -> 应用程序执行脚本。
有趣的是,当我使用 cmd 手动执行时,应用程序运行正常。但是,当安装程序的自定义操作打开 cmd.exe(c# 进程)并且它仍在等待时,则无法通过 cmd 手动打开应用程序。换句话说,我有安装程序打开的 cmd(具有提升的权限)和我自己手动打开的另一个 cmd。然后,手动 运行ning 应用程序不起作用。一旦我关闭安装程序打开的 cmd,并通过我自己打开的 cmd 手动 运行 应用程序,然后又一切正常,一切正常。
我需要帮助如何解决这个问题?
P.S。无法单独提取和安装安装程序的先决条件。我们没有升级数据库应用程序的源代码。
经过一些研究,我发现 Windows 不能同时 运行 两个 MSI,因此第二个 MSI 正在静默退出。