Usando $(OS)
, como se documenta en otras respuestas, puede distinguir entre Windows_NT
y Unix
(que incluye tanto Linux como macOS), pero no entre diferentes sistemas similares a Unix. Si está utilizando MSBuild 15.3 o posterior (lo cual es muy probable), puede considerar usar [MSBuild]::IsOsPlatform()
:
<Exec Command="./foo.sh" Condition="$([MSBuild]::IsOSPlatform('Linux'))" />
El argumento puede ser el nombre de cualquier OsPlatform
miembro.
La variable es $(OS)
, generalmente verificado contra ser o no ser Windows_NT
:
<Exec Command="./foo.sh" Condition=" '$(OS)' != 'Windows_NT' " />