返回

基于生成目标的MSBuild change属性

发布时间:2022-09-08 00:48:33 484

我想知道我正在构建的平台是否是 OSX。虽然我得到了一个可行的解决方案,但它需要我指定-r and -p:RuntimeIdentifier,而且它也非常脆弱。我知道这不是正确的做法。

现在我有类似的东西

<IsOSX Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</IsOSX>

<BuildingForOSX Condition="'$(RuntimeIdentifier.StartsWith(`osx`))' Or (('$(IsOSX)' == 'true') And ('$(RuntimeIdentifier)' == ''))">true</BuildingForOSX>

<BeautyEnable Condition="('$(BeautyEnable)' == '') And ('$(BuildingForOSX)' == 'true')">false</BeautyEnable>

<BeautyEnable Condition="'$(BeautyEnable)' == ''">true</BeautyEnable>

<PackageReference Condition="'$(BuildingForOSX)' == 'true'" Include="Dotnet.Bundle" Version="*" />

<PackageReference Condition="'$(BeautyEnable)' == 'true'" Include="nulastudio.NetBeauty" Version="2.0.0.0-beta.1" />

目标是:

  1. 仅当目标平台为 OSX 时才下载 Bundle
  2. 仅在目标平台不是OSX时启用 NetBeauty

这样做的正确方法是什么:

  1. dotnet restore -r osx-arm64没有-p:RuntimeIdentifier=osx-arm64,和
  2. dotnet msbuild -p:RuntimeIdentifier=osx-arm64 -t:BundleApp不使用 NetBeauty 就可以工作?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
相关帖子