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

迁移Xamarin原生绑定库到net6-macos时遭遇MM0140错误

迁移Xamarin.Mac原生绑定库到net6-macos时遇到链接器错误

我有一个基于旧版Xamarin.Mac(Xamarin.Full .NET Framework 4.8)、由Mono构建的原生绑定库,绑定的是ScriptingBridge.framework(非静态库),可正常构建运行。

迁移操作步骤

  1. 将主应用项目转换为SDK风格,目标框架设为net6-macos,移除绑定依赖后可正常构建;
  2. 将绑定库项目转换为SDK风格,针对编译错误做了以下修复:
    • 修改版本号,避免使用通配符;
    • 用AssemblyMetadata("IsTrimmable", "True")替换[assembly: LinkerSafe];
    • 添加对目标框架的NativeReference。

绑定库项目最终csproj内容

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6-macos</TargetFramework>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <RootNamespace>NativeBindingsLib</RootNamespace>
    <AssemblyName>NativeBindingsLib</AssemblyName>
    <IsPackable>false</IsPackable>
    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
    <IsBindingProject>true</IsBindingProject>
    <NoBindingEmbedding>true</NoBindingEmbedding>
  </PropertyGroup>
  <ItemGroup>
    <ObjcBindingApiDefinition Include="ApiDefinition.cs" />
    <ObjcBindingCoreSource Include="StructsAndEnums.cs" />
    <NativeReference Include="/System/Library/Frameworks/ScriptingBridge.framework" Kind="Framework" />
  </ItemGroup>
</Project>

错误信息

单独使用dotnet build构建绑定库无错误,但构建引用该绑定库的应用项目时,出现以下链接器错误:

ILLINK: Error MM0140: File '/Users/user/work/MonoBindingTest/net6/app/obj/Debug/net6.0-macos/osx-x64/linker-cache/NativeBindingsLib.resources/ScriptingBridge.framework/ScriptingBridge' is not a valid framework. (MM0140) (app)
       
ILLINK: Error MM2342: The linker step 'Extract Binding Libraries' failed during processing: File '/Users/user/work/MonoBindingTest/net6/app/obj/Debug/net6.0-macos/osx-x64/linker-cache/NativeBindingsLib.resources/ScriptingBridge.framework/ScriptingBridge' is not a valid framework. (MM2342) (app)

我已确认框架路径正确,也尝试将ScriptingBridge.framework加入XCode项目验证路径一致,希望能获取基于net6-macos的框架类原生绑定库工作示例用于自行测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:24:09