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

SSMS 2017环境下MVC应用加载Microsoft.SqlServer.Types 10.0.0.0失败求助

解决MVC应用中Microsoft.SqlServer.Types版本不匹配错误

兄弟,我之前碰到过完全一样的问题——升级了Microsoft.SqlServer.Types版本后就报找不到旧版本的错,给你几个亲测有效的解决思路:

  • 添加程序集绑定重定向(最推荐)
    直接在Web.config里加一段绑定重定向配置,把所有旧版本的请求都指向你现在用的14.0.0.0版本。这样不管是代码里还是依赖库中调用10.0/12.0版本的地方,都会自动转到新的版本上。配置代码如下:

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.SqlServer.Types" 
                            publicKeyToken="89845dcd8080cc91" 
                            culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" 
                           newVersion="14.0.0.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    
  • 确认NuGet包安装正确
    确保你是通过NuGet安装的Microsoft.SqlServer.Types 14.x版本,而不是手动引用的DLL。右键项目→管理NuGet包,搜索这个包,确认版本是14.0.0.0或者更高的兼容版本。NuGet安装会自动帮你处理部分配置,比手动引用更稳妥。

  • 处理空间类型的原生依赖
    如果你的代码用到了Geometry、Geography这类空间数据类型,可能需要把对应的原生DLL复制到输出目录。可以这样操作:

    • 在项目里新建SqlServerTypes文件夹,下面再建x86和x64子文件夹
    • 把SSMS安装目录(一般是C:\Program Files (x86)\Microsoft SQL Server\140\Shared)下的msvcr120.dll和SqlServerSpatial140.dll分别复制到对应架构的文件夹里
    • 选中这些DLL,在属性里设置“复制到输出目录”为“始终复制”
  • 检查项目与SSMS的兼容性
    SSMS 2017对应的是SQL Server 2017,而14.0.0.0正是这个版本的Microsoft.SqlServer.Types版本,理论上是完全兼容的。但要确认你的MVC项目目标框架是.NET Framework 4.6及以上,因为14版本的包对框架版本有要求。

另外,记得检查项目里所有引用Microsoft.SqlServer.Types的地方,确保没有硬编码版本号的情况,比如配置文件或代码里的版本指定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:25:59