2013-08-12 4 views
0

Итак, у меня есть .Net-утилита. Мне нужно использовать утилиту (ilasm и ildasm), которая иногда в переменной PATH, а иногда и нет. Конкретные моменты, когда он находится на пути, включают при использовании сценария командной строки Visual Studio .. и когда это не так, вы просто запускаете обычный экземпляр cmd.exe.Как выполнить команду оболочки в текущем контексте cmd.exe?

Вся информация, которую я видел для выполнения команды оболочки из .Net, подразумевает, что вы можете просто создать новый экземпляр cmd.exe, но в этом случае переменная PATH будет отличаться. Другая возможная вещь - это вручную разбор переменной PATH и ее выполнение непосредственно с ProcessStartInfo, когда она найдена, но это кажется неприемлемым и ненужным

Есть ли инструмент или что-нибудь, что поможет мне в этой ситуации? Как мне следует выполнять эти утилиты?

+0

Проверьте, есть ли в вашей обычной среде переменная 'VS * '(просто введите' set VS' в командной строке) - вы можете использовать их для поиска инструментов вместо пути ... Или просто измените систему (или user) PATH, чтобы включить VS-путь, если он вам нужен. –

+0

Почему запускается 'cmd.exe'? Почему не программа, которую вы пытаетесь вызвать (если это то, что вы делаете)? – gunr2171

+0

Как это может быть ** иногда **? Вы можете переключиться между командной строкой VS и регулярным 'cmd'? – Nayan

ответ

0

При запуске cmd.exe, вы можете установить его окружения путь:

var psi = new ProcessStartInfo("cmd.exe"); 
psi.UseShellExecute = false; 
psi.EnvironmentVariables["path"] = "mypath"; 
Process.Start(psi); 

Пожалуйста, прежде чем предпочесть комментарий downvote.

+0

Почему отсутствие примера, отсутствие ясности, отсутствие ответа? – gunr2171

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