2013-09-22 3 views
1

Как и в названии, я пытаюсь установить .exe без звука (скажем, inkscape) через мое приложение, написанное в WPF C#. Проблема в том, что процесс установки, который я использую, всегда возвращает исключение и терпит неудачу.Как отключить установку внешнего NSIS exe в WPF C#

Вот код, который я использую:

public static bool StartInstall(string pathtofile) 
    { 
     try 
     { 
      Process process = new Process(); 
      process.StartInfo.FileName = "Temp.exe"; 
      process.StartInfo.Arguments = string.Format(" /S", pathtofile); 
      process.Start(); 
      process.WaitForExit(); 
      Console.WriteLine("Silent Install was successful."); 
      return true; 
     } 
     catch 
     { 
      MessageBox.Show("Error!"); 
      return false; 
     } 
    } 

Согласно this сайте, переключатель для автоматической установки для NSIS упаковывают EXEs является/S. Я не уверен, что я делаю что-то неправильно в синтаксисе.

Код, который я использую, состоит из this stackoverflow post. Он работает для пакета .msi. Может быть, это не работает для NSIS exes?

Я относительно не знаю, почему это не работает. Приведенный выше код выйдет из строя в строке «process.Start()», скорее всего, из-за неизвестной команды или чего-то еще.

Буду признателен, если кто-нибудь может немного рассказать о том, как запустить этот процесс для установщика NSIS.

+1

Некоторым установщикам требуются права администратора, возможно, вы должны запустить установщик с помощью 'UseShellExecute = true' и' Verb = "runas" '. Проверьте [this] (http://stackoverflow.com/questions/133379/elevating-process-privilege-programatically) поток. – csharpfolk

+0

Вы действительно были правы для части привилегий администратора! благодаря – zaedas99

ответ

0

Я решил проблему с помощью csharpfolk.

Моя проблема была комбинация двух различных причин:

Во-первых, привилегии администратора были действительно необходимы для запуска приложения.

Во-вторых, для строки "process.StartInfo.Filename" требуется полный путь. Как только я сменил его на «C: \ Downloads \ Temp.exe», он сработал.

Смежные вопросы