2016-12-20 4 views
0

Я попытался создать установщик для своего приложения. Я хочу, чтобы для установки новой версии, поэтому удалите старую версию. Использование командной строки для решения.C# Командная строка, выполните две команды

Это моя команда:

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

Но команда Uninstall еще не договорил, а затем установить начало. Я хочу, чтобы команда Uninstall завершила команду deloy install.

Как это сделать.

PS: Я создаю установщик Installshiedl 2015, если у вас есть способ создать удаление перед установкой, пожалуйста, покажите мне, спасибо.

ответ

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() 
} 
0

Если у вас есть хорошая причина для делать это таким образом, почему бы не просто сделать более нормальную серьезную модернизацию. Это установит новую версию, а также удалит старую версию. Я не уверен, какая версия InstallShield у вас есть, но это документация:

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