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

BIMBase二次开发遇System.Runtime.CompilerServices.Unsafe版本冲突求助

解决System.Runtime.CompilerServices.Unsafe版本冲突问题

问题根源

你的项目里,BIMBase、FreeSql这两个依赖对System.Runtime.CompilerServices.Unsafe组件的版本要求不一致,导致运行时出现版本匹配错误。

可行解决方案

1. 配置程序集绑定重定向

在项目的app.config或web.config里添加绑定重定向规则,把所有对该组件的版本请求统一指向你实际安装的版本(选4.0.4.1或4.0.5.0其中一个即可)。

示例配置代码:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
  • 注意:oldVersion要覆盖所有可能的旧版本范围,newVersion设为你项目中实际引用的版本号。

2. 统一NuGet包版本

打开NuGet包管理器,把所有项目里的System.Runtime.CompilerServices.Unsafe包版本改成同一个(优先选较高的稳定版,比如4.0.5.0),确保整个依赖链都使用这个版本。

3. 适配BIMBase的依赖要求

查一下BIMBase的官方文档或依赖清单,确认它兼容的System.Runtime.CompilerServices.Unsafe版本,再调整FreeSql相关依赖适配这个版本;或者直接把BIMBase更到最新版,看是否已经修复了版本冲突问题。

4. 清理项目缓存

  • 删除项目目录下的bin和obj文件夹,重新编译项目。
  • 执行dotnet nuget locals all --clear命令清理NuGet本地缓存,之后重新恢复所有包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:50:55