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

Xamarin.iOS旧.NET项目构建错误MSB3644求助

解决旧.NET iOS项目构建时的MSB3644错误(找不到Xamarin.iOS引用程序集)

问题描述

构建旧.NET iOS项目时触发MSB3644错误,具体错误信息:

/usr/local/share/dotnet/sdk/8.0.302/Microsoft.Common.CurrentVersion.targets(1248,5): error MSB3644: The reference assemblies for Xamarin.iOS,Version=v1.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/Users/estefanord/Downloads/Snap.Net-master/Mobile/Mobile.iOS/Snap.Net.Mobile.iOS.csproj]

错误触发的Microsoft.Common.CurrentVersion.targets第1248行内容:

<GetReferenceAssemblyPaths
        Condition="'$(TargetFrameworkMoniker)' != '' and ('$(_TargetFrameworkDirectories)' == '' or '$(_FullFrameworkReferenceAssemblyPaths)' == '')"
        TargetFrameworkMoniker='$(TargetFrameworkMoniker)'
        RootPath="$(TargetFrameworkRootPath)"
        TargetFrameworkFallbackSearchPaths="$(TargetFrameworkFallbackSearchPaths)"
        BypassFrameworkInstallChecks="$(BypassFrameworkInstallChecks)"
        ContinueOnError="!$(BuildingProject)">
      <Output TaskParameter="ReferenceAssemblyPaths" PropertyName="_TargetFrameworkDirectories"/>
      <Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="_FullFrameworkReferenceAssemblyPaths"/>
      <Output TaskParameter="TargetFrameworkMonikerDisplayName" PropertyName="TargetFrameworkMonikerDisplayName" Condition="'$(TargetFrameworkMonikerDisplayName)' == ''"/>
    </GetReferenceAssemblyPaths>

已尝试重装.NET、修改产品版本、临时设置路径等方法,问题仍未解决。


针对性解决步骤

1. 修正项目TargetFramework配置

旧Xamarin.iOS项目的目标框架格式与.NET 8+的iOS项目不同,打开项目的.csproj文件,检查<TargetFramework>节点:

  • 错误示例(可能被误升级):<TargetFramework>net8.0-ios</TargetFramework>
  • 正确示例(匹配Xamarin.iOS版本):<TargetFramework>Xamarin.iOS16.1</TargetFramework>

版本号需与你本地安装的Xamarin.iOS版本一致,可通过Visual Studio for Mac的设置 > SDK Locations > Apple > Xamarin.iOS查看当前版本。

2. 确认Xamarin.iOS安装完整性

  • 打开Visual Studio for Mac,进入Visual Studio > Settings > SDK Locations > Apple > Xamarin.iOS,确认路径指向/Library/Frameworks/Xamarin.iOS.framework/Versions/Current
  • 若路径为空或无效,重新运行Visual Studio安装器,勾选移动开发分类下的Xamarin.iOS组件进行安装。

3. 手动强制指定引用路径

如果MSBuild自动检测路径失败,在.csproj的<PropertyGroup>中添加以下配置:

<_TargetFrameworkDirectories>/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS</_TargetFrameworkDirectories>
<_FullFrameworkReferenceAssemblyPaths>/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS</_FullFrameworkReferenceAssemblyPaths>

4. 清理项目缓存

  • 删除项目根目录下的bin、obj文件夹
  • 运行终端命令:dotnet clean
  • 重启Visual Studio后重新构建项目

5. 锁定兼容的.NET SDK版本

Xamarin.iOS最高兼容.NET 6 SDK,创建项目目录下的global.json文件锁定版本:

{
  "sdk": {
    "version": "6.0.418",
    "rollForward": "latestMinor"
  }
}

若未安装.NET 6 SDK,可通过dotnet install-sdk 6.0命令安装。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:02:43