2013-07-21 1 views
1
.

. Я пытаюсь запустить процесс для удаления определенного VS-расширения в режиме довольно, и кажется, что аргументы не пройдут.Start.process не работает с аргументами VSIXInstaller.exe. C#

string VSIXInstallerPath = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config", "VSIXInstallerLocation", null); 
      Process UninstallVSPackage = new Process(); 
      UninstallVSPackage = Process.Start(VSIXInstallerPath + " " + (@"/u:GUID /quiet")); 

И это ошибка я получаю:

Система не может найти указанный файл

При запуске из командной подсказки он работает.

ответ

1

Чтобы выполнить команду с аргументами, вы должны использовать перегрузку Process.Start(string fileName, string argument) и передать аргументы во второй параметр.

UninstallVSPackage = Process.Start(VSIXInstallerPath, "/u:GUID /quiet"); 
+0

Я использовал свой пример, строка оказывается: "\" C: \\ Program Files (x86) \\ Microsoft Visual Studio 11,0 \\\\ Common7 \\ IDE \\ VSIXInstaller.exe \ "/ u: GUID/quiet", но все та же ошибка. –

+0

Я отредактировал свой ответ, чтобы исправить проблему. –

+0

Спасибо. Работает как шарм. –