繁体   English   中英

WIX安装程序无法正确运行C#进程

[英]WIX Installer do not run C# process properly

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

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

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

我需要帮助我该如何解决?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM