如何在 MSBuild 中获取目标操作系统

How to get the target operating system in MSBuild

我正在尝试设置一个 属性 我们的构建目标 os。

我想知道当我们 运行 这些命令时我们是针对 windows 还是 Linux。

dotnet publish -c Release -r win10-x64

dotnet publish -c Release -r linux-x64

变量$(OS)总是显示Windows_NT

是否有预定义变量可以告诉我目标是 Windows 还是 Linux?

我找不到为此预定义的变量,但是,我能够创建一个。

<Target Name="AfterPublishTarget" AfterTargets="Publish">
    <PropertyGroup>
       <IsWindows>$(PublishDir.Contains('win'))</IsWindows>
       <IsLinux>$(PublishDir.Contains('linux'))</IsLinux>
    </PropertyGroup>
</Target>

我希望这对其他人有帮助。