【问题标题】:How to build Xamarin.Forms iOS app with Azure Pipelines and F# 5如何使用 Azure Pipelines 和 F# 5 构建 Xamarin.Forms iOS 应用
【发布时间】:2023-03-29 01:54:01
【问题描述】:

我有一个 Xamarin.Forms 应用程序,我正在尝试使用 Azure DevOps Pipeline 构建它。该应用使用适用于 Xamarin.Forms 的 Fabulous F# MVU 框架,因此需要 F#。

应用程序的 Android 版本在本地和管道上都可以正常编译。该应用程序的 iOS 版本在我使用 F# 5 的 Visual Studio 中本地编译良好,但在管道中构建失败,抱怨许多语法错误。我认为这是因为我需要用于 iOS 版本的 Mac 管道构建代理使用的是 F# 4.5 而不是 F# 5。我可以在管道构建日志中看到此输出:

Microsoft (R) F# Compiler version 10.2.3 for F# 4.5

一个示例语法错误是:

error FS1160: This token is reserved for future use

引用的保留标记是$ 字符,用于表示字符串插值。我猜这不是 F# 4.5 中的事情。

我已尝试添加“使用 .NET Core”管道任务来尝试设置 .NET 5.x 的使用,但随后的“Xamarin.iOS”管道构建任务似乎没有对此有所了解。

如何在 Azure DevOps 管道中构建此 Xamarin.Forms iOS 应用并使其使用 F# 5?

【问题讨论】:

  • 您好,刚刚检查一下这个问题现在是否仍然阻碍您?这个问题有更新吗?

标签: xamarin xamarin.forms f# xamarin.ios azure-pipelines


【解决方案1】:

如何在 Azure DevOps 管道中构建此 Xamarin.Forms iOS 应用并使其使用 F# 5?

根据这个doc,我们可以看到SDK 5.0.202包含F# 5.0

检查这个doc,我们可以看到托管代理macos-10.15 有.NET SDK 5.0.202

我们需要在 Azure DevOps 管道中指定托管代理并添加任务Use .NET Core 以安装 SDK 版本 5.0.202,然后我们可以在 Azure DevOps 管道中使用F# 5.0。

【讨论】:

  • 感谢您的意见。我已经设法解决了这个问题。我已经为将来的任何人添加了答案。
【解决方案2】:

对于遇到类似问题的任何其他人:管道中包含一个脚本(现在仅出于历史原因,从我们将 MacOS 10.14 构建代理映像与旧版本应用程序一起使用时)设置Xamarin SDK 到版本 6.8.0。禁用此脚本允许 MacOS 10.15 构建代理映像上的默认 Xamarin SDK 版本(当前为 6.12.7)接管,这解决了我的 F# 版本问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 2011-11-21
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多