NuGet恢复问题:未找到Xamarin iOS CSharp目标

mw3dktmi  于 2022-12-07  发布在  iOS
关注(0)|答案(1)|浏览(133)

我在Azure DevOps上有一个Xamarin Forms Android构建管道,本地构建我的应用程序没有问题。当管道运行时,当我尝试执行NuGet还原时,我得到以下错误(ios管道使用相同的设置,还原没有问题)。

错误

The imported project "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\iOS\Xamarin.iOS.CSharp.targets" was not found.

这是尝试NuGet Restore时失败的行

<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />

我昨天没有收到这个问题,也没有对.csproj.sln进行任何更改,所以我不知道为什么会出现这个问题,感谢您的帮助。

生成代理

  • windows -2022
  • NuGet软件5.9.1
2cmtqfgy

2cmtqfgy1#

正如我所评论的,VS 2022中的代理程序似乎发生了变化,现在不包括Xamarin组件。您可以在本期GitHub中阅读更多相关信息:https://github.com/actions/runner-images/issues/6082
在这个链接的问题中,还有一个解决方案,你可以自己安装Xamarin组件。注意,这会增加大约4分钟的额外时间来安装该组件:

- pwsh: |
    Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
    $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
    $componentsToAdd = @(
      "Component.Xamarin"
    )
    [string]$workloadArgs = $componentsToAdd | ForEach-Object {" --add " +  $_}
    $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
    $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
    if ($process.ExitCode -eq 0)
    {
        Write-Host "components have been successfully added"
    }
    else
    {
        Write-Host "components were not installed"
        exit 1
    }
  displayName: "Install Xamarin Components"

另一种方法是切换到macOS-12代理,并在其基础上进行构建。

相关问题