Mit $(OS)
, wie in anderen Antworten dokumentiert, kann zwischen Windows_NT
unterscheiden und Unix
(das sowohl Linux als auch macOS umfasst), aber nicht zwischen verschiedenen Unix-ähnlichen Systemen. Wenn Sie MSBuild 15.3 oder höher verwenden (was sehr wahrscheinlich ist), sollten Sie die Verwendung von [MSBuild]::IsOsPlatform()
in Erwägung ziehen :
<Exec Command="./foo.sh" Condition="$([MSBuild]::IsOSPlatform('Linux'))" />
Das Argument kann der Name eines beliebigen OsPlatform
sein Mitglied.
Die Variable ist $(OS)
, normalerweise geprüft, ob es Windows_NT
ist oder nicht :
<Exec Command="./foo.sh" Condition=" '$(OS)' != 'Windows_NT' " />