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

VS 2013与SQL Server 2017兼容问题:报错‘An Incompatible SQL Server version was detected’求助

解决VS2013添加SQL Server2017数据库时的版本兼容问题

我之前也碰到过一模一样的问题!VS2013自带的SSDT对SQL Server2017的支持确实有局限,哪怕更新了常规的SSDT补丁也可能搞不定,给你几个亲测有效的方案:

方案1:安装针对VS2013的SSDT特定预览版本

VS2013的正式版SSDT最高仅支持到SQL Server2016,要兼容2017需要安装专门的预览包。你需要找到微软官方发布的支持SQL Server2017的VS2013版SSDT预览安装包,安装时选择覆盖现有SSDT组件,完成后重启VS2013再尝试添加数据库。

方案2:手动调整数据库兼容级别

如果不想折腾SSDT安装,可以先在SQL Server2017中创建数据库,降低其兼容级别后再附加到VS项目:

  • 打开SQL Server Management Studio(SSMS),连接到你的2017实例
  • 右键目标数据库 → 属性 → 选项 → 在「兼容级别」下拉菜单中选择「SQL Server 2016 (130)」或更低版本
  • 回到VS2013,通过「附加现有数据库」的方式将该数据库添加到项目,而非直接新建数据库

方案3:修改VS2013配置文件(进阶操作)

通过重定向组件版本,强制VS2013使用SQL Server2017对应的SMO组件:

  1. 找到VS2013的安装目录,默认路径是C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
  2. 找到devenv.exe.config文件,用管理员权限打开
  3. 在<configuration>节点内添加以下配置代码:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Management.Sdk.Sfc" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0-12.0.0.0" newVersion="14.0.0.0"/>
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Smo" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0-12.0.0.0" newVersion="14.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
  1. 保存文件后重启VS2013,再尝试添加数据库

备选临时方案

如果以上方法都不生效,可以暂时分开管理:用SSMS直接操作SQL Server2017数据库,VS2013只负责项目代码编写,数据库结构的修改在SSMS中完成后同步到项目即可,这样能完全避开版本检测问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:13:36