Код: Выделить всё
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
Мобильная версия