You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dotnet CLI构建Xamarin Android项目失败,VS2019可正常构建求助

解决dotnet build构建Xamarin Android项目失败的问题

你遇到的核心矛盾是dotnet CLI默认不包含Xamarin Android专属的构建依赖组件,而Visual Studio 2019自带了完整的MSBuild和Xamarin工具链,所以本地VS能正常构建,但单独用dotnet build就会触发路径或依赖缺失的错误。下面是几个针对性的解决办法:

1. 确保Azure代理机器安装完整的VS2019环境

dotnet CLI构建Xamarin项目时,实际上需要依赖VS安装目录下的Xamarin Android目标文件和SDK包。所以首先要确认你的Azure构建代理机器:

  • 已经安装了Visual Studio 2019(社区版/专业版/企业版均可)
  • 安装时勾选了移动开发.NET工作负载,并且通过VS的Android SDK管理器,确认安装了项目所需的MonoAndroid目标包和对应版本的Android SDK

2. 改用VS自带的MSBuild工具构建(推荐方案)

既然dotnet CLI对Xamarin项目的适配性有限,不如直接调用VS自带的MSBuild来构建,这和你本地VS的构建环境完全一致:

  • 在Azure流水线中添加MSBuild任务,指定MSBuild的路径为:
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe
    
  • 构建参数设置为:
    MyProject.Mobile.Droid.csproj /p:Configuration=Release /t:Build /force
    
    这样就能完全复用VS的构建环境,从根源上避免路径和依赖缺失的问题。

3. 配置dotnet CLI指向VS的MSBuild环境(若坚持用dotnet build)

如果你必须使用dotnet build命令,不要手动硬编码MSBuildExtensionsPath,而是通过环境变量让dotnet CLI自动找到VS的MSBuild组件:

  • 在构建步骤前添加环境变量设置:
    set MSBuildExtensionsPath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild
    
  • 同时检查项目的目标框架配置:打开MyProject.Mobile.Droid.csproj,确认<TargetFramework>节点是正确的版本格式(比如<TargetFramework>MonoAndroid10.0</TargetFramework>),而不是错误的MonoAndroid,Version=v1.0。如果确实需要旧版本,在VS的Android SDK管理器中安装对应的MonoAndroid目标包。

4. 修复项目的目标框架配置错误

报错“未找到MonoAndroid,Version=v1.0的引用程序集”,大概率是项目文件中的目标框架配置格式有误:

  • 打开csproj文件,查找<TargetFramework>或<TargetFrameworks>节点,确认版本号格式为MonoAndroidXX.X(比如MonoAndroid12.0),而非MonoAndroid,Version=v1.0这种错误格式
  • 如果项目确实需要旧版本的MonoAndroid,在VS的Android SDK管理器中搜索并安装对应版本的目标包

内容的提问来源于stack exchange,提问作者cm44

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:50:52