首页 > 解决方案 > 如何在 MSBuild 中获取目标操作系统

问题描述

我正在尝试设置一个属性,我们在构建时针对的操作系统。

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

dotnet publish -c Release -r win10-x64

或者

dotnet publish -c Release -r linux-x64

变量$(OS)总是显示Windows_NT

是否有一个预定义的变量可以告诉我是针对 Windows 还是 Linux?

标签: msbuild

解决方案


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

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

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


推荐阅读