【问题标题】:Azue Devops multitarget build orderAzure Devops 多目标构建顺序
【发布时间】:2020-11-27 21:14:46
【问题描述】:

我有复杂的 Xamarin 解决方案,其中包含 android、ios 和 nestandard 核心项目(通过 Microsoft.NET.Sdk 定义)以及一些具有某些逻辑的其他 csprojs(一些通过 Microsoft.NET.Sdk 定义为 netstandard2.0。其他通过MSBuild.Sdk.Extras 用于多目标 netstandard2.0、xamarin.ios10、monoandroid10.0 并具有一些特定于平台的代码) 使用最新库在我的 macos 上进行本地构建是可以的(netcore 3 和 5,最新的 xamarin。在 Rider 和 VS for mac 上尝试过)。 使用 msbuild 在 windows-2019 代理上成功构建 ADO(只是带有代码检查等的常规 CI) 基于 macos-10.15 代理的 ADO 构建(用于 ios 和 android 打包的不同作业,使用 XamarinIos/XamarinAndroid 任务)失败并出现以下奇怪行为: 我在我的解决方案中看到针对特定平台库的 droid/ios 项目中有很多命名空间错误。

我进行了一些调查,发现 msbuild 首先运行特定于平台的 csprojs 构建,复制输出,然后为相同的 csprojs 运行 netstandard 构建,并用 netstandard 版本替换输出中的文件。显然,它没有任何特定于平台的代码行。

所以,问题是wtf?我想怎么解决这个问题?

我尝试了什么:

  • 用 msbuild 调用替换 Xamarin 任务
  • 将 Xamarin SDK 版本更改为 16_12_3 和 16_12_0(当前为 16_12_2)
  • 通过 global.json 和使用 UseDotNet@2 任务安装 v5 两种方式将 .net 版本更改为 5(当前为 3.1.x)
  • 核心项目已转换为多目标
  • 从 sln 中删除所有内容并从头开始添加每个项目

我也认为 msbuild,也许,试图从我的库中制作一个 nupkg,所以我在 build props 中尝试了这个:

<PropertyGroup>
    <IsPackable>false</IsPackable>
    <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
</PropertyGroup>

我也有这个

<PropertyGroup Label="Multiplatform" Condition=" '$(TargetsToBuild)' != 'All' ">
    <TargetFrameworks Condition=" '$(TargetsToBuild)' == 'Android' ">monoandroid10.0</TargetFrameworks>
    <TargetFrameworks Condition=" '$(TargetsToBuild)' == 'iOS' ">xamarin.ios10</TargetFrameworks>
</PropertyGroup>

多目标项目有这个

<PropertyGroup Label="Multiplatform">
    <TargetFrameworks>netstandard2.0;xamarin.ios10;monoandroid10.0</TargetFrameworks>
</PropertyGroup>

当然,我已经尝试删除上面的标签并在没有它们的情况下构建。不走运:(

【问题讨论】:

    标签: xamarin azure-devops msbuild


    【解决方案1】:

    所以答案是: 您应该以正确的顺序添加对其他项目的 csproj 引用:/ 顺序对 msbild 很重要

    【讨论】:

    • 感谢您在这里分享您的解决方案,请您接受您的解决方案as the answer?因此,对于遇到相同问题的其他成员轻松找到解决方案将很有帮助。祝你有美好的一天:)
    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 2023-03-09
    • 2019-08-02
    • 1970-01-01
    • 2019-05-05
    • 2019-12-05
    • 2019-11-06
    • 1970-01-01
    相关资源
    最近更新 更多