【问题标题】:C# Commandline , run two commandC#命令行,运行两个命令
【发布时间】:2017-05-05 04:40:26
【问题描述】:

我尝试为我的应用程序创建安装程序。我想在安装新版本之前,所以卸载旧版本。使用命令行来解决。

这是我的命令:

start /b msiexec.exe /x{79735753-F9D4-49AD-B29E-55C578390D25} /passive &cmd /k "e:\22-08-2016\setup.exe"

但卸载命令尚未完成,然后开始安装。我希望卸载命令完成,然后部署安装命令。

如何做到这一点。

PS:我通过Installshiedl 2015创建安装程序,如果有办法在安装前创建卸载,请给我看,谢谢。

【问题讨论】:

    标签: c# command-line installation uninstallation


    【解决方案1】:

    可以使用Process.WaitForExit方法:

    public void run2ndCmd()
    {
        String command = @"e:\22-08-2016\setup.exe";
        ProcessStartInfo cmdsi = new ProcessStartInfo("cmd.exe");
        cmdsi.Arguments = command;
        Process cmd = Process.Start(cmdsi);
        cmd.WaitForExit();    
    }
    public void run1stCmd()
    {
        String command = @"/b msiexec.exe /x{79735753-F9D4-49AD-B29E-55C578390D25} /passive &cmd /k";
        ProcessStartInfo cmdsi = new ProcessStartInfo("cmd.exe");
        cmdsi.Arguments = command;
        Process cmd = Process.Start(cmdsi);
        cmd.WaitForExit();    
    }
    public void runCmd()
    {
        run1stCmd();
        //This will execute only when 1st command is finished
        run2ndCmd()
    }
    

    【讨论】:

      【解决方案2】:

      除非您有充分的理由这样做,否则为什么不进行更正常的主要升级。这将安装新版本并卸载旧版本。我不确定您使用的是哪个版本的 InstallShield,但这是文档:

      http://helpnet.installshield.com/installshield22helplib/helplibrary/UpgradeMsiMajorAdvanced.htm

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 2020-07-11
        • 2014-11-07
        • 1970-01-01
        • 2018-01-30
        相关资源
        最近更新 更多