使用 SQL Server 2014 LocalDB 和 Visual Studio 2013 构建 LightSwitch 失败

Posted

技术标签:

【中文标题】使用 SQL Server 2014 LocalDB 和 Visual Studio 2013 构建 LightSwitch 失败【英文标题】:LightSwitch build fails using SQL Server 2014 LocalDB and Visual Studio 2013 【发布时间】:2015-01-13 06:47:03 【问题描述】:

我已安装 SQL Server 2014 并希望在 Visual Studio 中使用 localdb\v12.0。我找到了this 帖子并了解如何使用 SQL Server 对象资源管理器成功连接到 localdb。现在我在 Visual Studio 2013 中创建了一个 LightSwitch 项目,构建它时抛出异常:

与 SQL Server 建立连接时出错 实例 '(LocalDB)\v11.0'。

似乎它正在寻找 SQL Server 2012 在 Bin\Data 中创建开发数据库,​​而我没有 SQL Server 2012,因此系统上没有 localdb\v11.0。所以

    为什么VS 2013会尝试使用localdb\v11.0

    如何强制 Visual Studio 在构建项目时使用localdb\v12.0

我尝试更改 web.config 中的 _IntrinsicData 连接字符串,但在再次构建时,尝试使用属于 SQL Server 2012 的 localdb\v11.0 时会引发相同的异常!

【问题讨论】:

【参考方案1】:

好吧,我花了很多时间才发现问题所在!原因及解决方法如下:

LightSwitch 在构建项目(这称为开发数据库)时使用 SQL Express LocalDB 来存储用户和角色等信息。 SQL Server 2012 没有问题,但如果安装了 SQL Server 2014,则会强制 LightSwitch 连接到 (localdb)\v11.0 。 LightSwitch 在解决方案中创建了三个项目。如果客户端和服务器项目构建成功,那么问题出在第三个项目上。完成以下步骤:

    右键单击解决方案中的第三个项目 选择Unload Project 再次右键单击它并选择Edit <yourProjectName>.lsxtproj 搜索 SqlExpressInstancename 你会发现它的值为 (localDB)\v11.0 ! 将其更改为正确的 SQL Server LocalDB 实例名称;有关更多信息,请查看以下说明

现在解决方案成功构建

--

注意 1: 要查看安装了哪个版本的 SQL Server LocalDb,请打开 cmd 并键入 sqllocaldb.exe v

注意2:到系统上创建的LocalDb实例,打开cmd输入sqllocaldb.exe info

注意3:要被LightSwitch使用的实例必须启动:打开cmd输入sqllocaldb.exe start


更新:寻找更好的解决方案我找到了解决此问题的正确方法。每次创建一个新的 LightSwitch 项目时,我都很难遵循这 6 个步骤。因此,如果您想通过这种方式修复它:

    在 Visual Studio 中,转到工具->选项 在数据库工具中选择数据连接 设置所需的 SQL Server 实例名称

所以不需要每次创建 LS 项目时都设置

【讨论】:

VS2015 和 LocalDB 版本 12 的可能数据库\实例名称是 (localdb)\MSSQLLocalDB(localdb)\ProjectsV12

以上是关于使用 SQL Server 2014 LocalDB 和 Visual Studio 2013 构建 LightSwitch 失败的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2014 UDF - 精简功能

SQL SERVER2014的安装

SQL Server 2014 兼容级别错误

SQL Server 2014 优化器索引选择性

SQL Server 2014 jdbc 访问

SQL Server 2014 备份到 2012