如何使用 Azure Pipelines 和 F# 5 构建 Xamarin.Forms iOS 应用程序
How to build Xamarin.Forms iOS app with Azure Pipelines and F# 5
我有一个 Xamarin.Forms 应用程序,我正在尝试使用 Azure DevOps 管道构建它。该应用程序为 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?
How can I build this Xamarin.Forms iOS app in an Azure DevOps pipeline and make it use 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
管道。
对于遇到类似问题的任何其他人:管道中包含一个脚本(现在仅出于历史原因,从我们使用带有旧版本应用程序的 MacOS 10.14 构建代理映像开始)将 Xamarin SDK 设置为版本 6.8.0。禁用此脚本允许 MacOS 10.15 构建代理映像上的默认 Xamarin SDK 版本(当前为 6.12.7)接管,这解决了我的 F# 版本问题。
我有一个 Xamarin.Forms 应用程序,我正在尝试使用 Azure DevOps 管道构建它。该应用程序为 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?
How can I build this Xamarin.Forms iOS app in an Azure DevOps pipeline and make it use 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
管道。
对于遇到类似问题的任何其他人:管道中包含一个脚本(现在仅出于历史原因,从我们使用带有旧版本应用程序的 MacOS 10.14 构建代理映像开始)将 Xamarin SDK 设置为版本 6.8.0。禁用此脚本允许 MacOS 10.15 构建代理映像上的默认 Xamarin SDK 版本(当前为 6.12.7)接管,这解决了我的 F# 版本问题。