Вроде задача банальная, но как-то на вскидку быстро не нашел решения.
Имеются ли какие-то встроенные в .Net средства определение, под какой ОС запущена программа?
Что-то кроме как по
OperatingSystem.Platform определять или какой-то отдельный свой код определения, а что-то направленное именно на кроссплатформенность.
А еще лучше, если есть, какие-то (P.S. готовые "из коробки") директивы предпроцессора, что бы определение ОС не фигурировало в коде?
Т.е. что-то вроде:
#if LINUX
string cmd = @"/bin/bash";
#else
string cmd = @"c:\Windows\System32\cmd.exe"
#end
Да, я знаю, что /bin/bash это симлинк, а писать абсолютный путь неправильно, но это просто пример.