Xamarin 在Azure devops microsoft托管的生成服务器上安装新版本的依赖项

Xamarin 在Azure devops microsoft托管的生成服务器上安装新版本的依赖项,xamarin,azure-devops,azure-pipelines,release-management,Xamarin,Azure Devops,Azure Pipelines,Release Management,我对iOS中Xamarin移动应用程序的azure构建管道有问题。该问题要求mono版本6.10.0在构建服务器上可用。目前,macOS 10.14的预装映像仅包含版本6.08之前的Mono。macOS 10.15的图像确实包含Mono的正确版本,但由于内部原因,我现在无法升级到10.15 有没有办法在构建之前更新管道以安装新版本的Mono?还是我们完全局限于图像中包含的软件?我使用的是microsoft托管服务器。Azure管道托管代理是通用的构建和部署代理。因此,微软不会为边缘案例添加某些人

我对iOS中Xamarin移动应用程序的azure构建管道有问题。该问题要求mono版本6.10.0在构建服务器上可用。目前,macOS 10.14的预装映像仅包含版本6.08之前的Mono。macOS 10.15的图像确实包含Mono的正确版本,但由于内部原因,我现在无法升级到10.15


有没有办法在构建之前更新管道以安装新版本的Mono?还是我们完全局限于图像中包含的软件?我使用的是microsoft托管服务器。

Azure管道托管代理是通用的构建和部署代理。因此,微软不会为边缘案例添加某些人可能需要的任意旧版本软件

但是,您可以访问自制软件和其他工具,以便在代理上安装所需的软件。您还可以访问设置环境变量。所以你可以安装所有需要的软件

至于继续使用macOS 10.14和任何你需要的mono版本的要求。在某种程度上,您必须意识到,微软提供的任何图像都不会包含此软件。所以,如果您必须拥有此环境,请创建您自己的托管macOS代理,并添加到您的池中,以便在其上运行类似的内容

有没有办法在构建之前更新管道以安装新版本的Mono

正如您所说,Mono版本6.10.0不存在于Microsoft Hosted Agent:Macos-10.14中,但是您可以在Xamarin任务之前运行脚本来安装目标Mono版本

以下是管道示例:

steps:
- bash: |
   #!/bin/bash
   set -ex
   
   
   MONO_MACOS_PKG_DOWNLOAD_URL='https://download.mono-project.com/archive/6.10.0/macos-10-universal/MonoFramework-MDK-6.10.0.49.macos10.xamarin.universal.pkg'
   
   
   mkdir -p /tmp/mono-install
   cd /tmp/mono-install
   
   # debug: mono version before the install
   mono --version
   
   # download mono mac installer (pkg)
   wget -q -O ./mono-installer.pkg "$MONO_MACOS_PKG_DOWNLOAD_URL"
   
   # install it
   sudo installer -pkg ./mono-installer.pkg -target /
   
   # debug: mono version after install, just to confirm it did overwrite the original version
   mono --version
   
   # just for fun print this symlink too, which should point to the version we just installed
   ls -alh /Library/Frameworks/Mono.framework/Versions/Current
  displayName: 'Bash Script'

- script: |
   mono -V
   
   cat `which mcs`
  displayName: 'Command Line Script'
这里是关于安装mono的

结果:


这很有效。助教