Adler_lug
@Adler_lug

Как быстро определить ОС (Windows/Linux) при кроссплатформенной разработке на С# .Net 5/6?

Вроде задача банальная, но как-то на вскидку быстро не нашел решения.
Имеются ли какие-то встроенные в .Net средства определение, под какой ОС запущена программа?
Что-то кроме как по OperatingSystem.Platform определять или какой-то отдельный свой код определения, а что-то направленное именно на кроссплатформенность.

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

Да, я знаю, что /bin/bash это симлинк, а писать абсолютный путь неправильно, но это просто пример.
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
А еще лучше, если есть, какие-то директивы предпроцессора, что бы определение ОС не фигурировало в коде?

Директивы препроцессора на то и препроцессора, что они только при компиляции проверяются, но можно.
Вариант раз - RuntimeIdentifier
Вариант два - объявить своё свойство.

Если динамически в коде, то можно через OperatingSystem.IsLinux()
Или через System.Runtime.InteropServices.RuntimeInformation.IsOsPlatform
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
17 мая 2022, в 17:35
300000 руб./за проект
17 мая 2022, в 17:13
15000 руб./за проект
17 мая 2022, в 16:40
4000 руб./за проект