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

Unity报错CS1705:.NET6 DLL依赖System.Runtime版本高于引用版本如何解决

问题描述

在Linux平台、使用Mono作为编译器的Unity项目中,引入.NET 6编译生成的自定义DominoEngine.dll时触发编译错误:

error CS1705: Assembly 'DominoEngine' with identity 'DominoEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

问题根因

该错误和Linux运行平台无关,核心是程序集编译目标与Unity运行时的基类库版本不匹配:

  • .NET 6环境下编译类库时,默认会引用版本为6.0.0.0的System.Runtime等.NET基础类库
  • 未开启.NET 6兼容级别的Unity Mono编译环境,默认绑定.NET Standard/.NET Framework 4.x系列基础类库,自带的System.Runtime最高版本为4.1.2.0,无法识别高版本基础程序集引用
解决方案(按推荐优先级排序)

方案1:重编译自定义类库匹配Unity支持的目标框架(无兼容风险,首选)

这是Unity引入自定义托管DLL的标准方案,不会引入任何运行时崩溃问题:

  • 打开DominoEngine项目的.csproj项目文件
  • 将原有的net6.0目标框架,替换为当前Unity版本支持的兼容目标:
    • Unity 2020.3及以上LTS版本,优先选择netstandard2.1
    • 项目开启.NET Framework兼容模式、或使用2020以前的Unity版本,选择net48
  • 增加编译配置,避免编译时将系统基础类库复制到输出目录
    参考项目配置如下:
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <TargetFramework>netstandard2.1</TargetFramework>
        <GenerateRuntimeConfigurationFiles>false</GenerateRuntimeConfigurationFiles>
        <CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
        <Nullable>disable</Nullable>
      </PropertyGroup>
    </Project>
    
  • 重新编译项目,将输出目录下的DominoEngine.dll复制到Unity项目的Assets/Plugins目录即可正常加载,不会再触发版本不匹配错误。

方案2:升级Unity配置支持.NET 6运行时(仅适用于高版本Unity)

如果必须使用.NET 6专属API、无法降级类库目标框架,需要满足以下前提:

  • 使用2022.3 LTS及以上版本的Unity,该版本之后Mono后端才正式支持.NET 6 API兼容级别
  • 打开Unity的Player Settings > Other Settings > Configuration,将Api Compatibility Level调整为.NET 6
  • 重新编译DominoEngine.dll时,不要将.NET 6 SDK自带的System.Runtime等基础类库复制到Unity项目中,避免覆盖Unity自带的运行时库。
避坑提醒
  • 绝对不要将本地.NET 6 SDK目录下的6.0版本System.Runtime.dll等基础类库复制到Unity项目中,Mono运行时和CoreCLR基础库不兼容,会直接导致编辑器崩溃、Linux平台运行时闪退,且无明确报错日志
  • 不要尝试通过app.config配置程序集绑定重定向解决版本问题,Unity的Mono编译管线不识别该配置,添加后完全无效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:39:35