Utilizzando $(OS)
, come documentato in altre risposte, può distinguere tra Windows_NT
e Unix
(che include sia Linux che macOS), ma non tra diversi sistemi simili a Unix. Se stai utilizzando MSBuild 15.3 o successivo (il che è molto probabile), potresti prendere in considerazione l'utilizzo di [MSBuild]::IsOsPlatform()
:
<Exec Command="./foo.sh" Condition="$([MSBuild]::IsOSPlatform('Linux'))" />
L'argomento può essere il nome di qualsiasi OsPlatform
membro.
La variabile è $(OS)
, di solito verificata rispetto all'essere o non essere Windows_NT
:
<Exec Command="./foo.sh" Condition=" '$(OS)' != 'Windows_NT' " />