Поиск полного пути к инструменту для запуска с помощью ProcessStartInfo в C#C#

Место общения программистов C#
Ответить
Anonymous
 Поиск полного пути к инструменту для запуска с помощью ProcessStartInfo в C#

Сообщение Anonymous »

Я разрабатываю небольшой интерфейс командной строки, который вызывает приложение dotnet.exe с помощью кода, подобного этому:

Код: Выделить всё

var dotnet = new ProcessStartInfo("dotnet", ...)
{
// ...
};
var process = Process.Start(dotnet);
(параметры и настройки не имеют отношения к вопросу, почему я их удалил)
Код работает нормально. Но я получаю предупреждение от SonarCloud о том, что мне следует указать полный путь к dotnet.exe. Я понимаю в этом суть, поскольку кто-то сможет внедрить вредоносную версию этого инструмента в PATH, и мой инструмент запустит ее.
Мой вопрос заключается в следующем. Как мне найти путь к dotnet.exe? ChatGPT предложил мне получить местоположение из DOTNET_ROOT, но на моем компьютере этого нет, поэтому я сомневаюсь, что у моих пользователей это тоже будет. Другой вариант — запустить «где» или «который», но тогда я, вероятно, получу аналогичное предупреждение о необходимости указать полный путь к этим инструментам.
Я знаю, что я НЕ ОБЯЗАТЕЛЬНО реализовывать все, что говорят мне статические анализаторы кода. Но в данном случае я думаю, что это правильное предложение. Я также знаю, что если кому-то удастся внедрить новый файл dotnet.exe, та же проблема возникнет, когда пользователи запустят сборку dotnet и т. д.

Подробнее здесь: https://stackoverflow.com/questions/790 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»