SQL Server Compact 是不是已从 Visual Studio 2013 中终止?
Posted
技术标签:
【中文标题】SQL Server Compact 是不是已从 Visual Studio 2013 中终止?【英文标题】:Is SQL Server Compact discontinued from Visual Studio 2013?SQL Server Compact 是否已从 Visual Studio 2013 中终止? 【发布时间】:2013-12-20 05:33:35 【问题描述】:当我尝试从 Visual Studio 创建一个新的 SQL Server Compact 文件 -> 添加新项目时,我看不到“本地数据库”选项,这实际上是添加 SQL Server Compact 数据库的方法。现在,如果它真的被微软停产了,那么微软推荐的用于桌面应用程序的嵌入式数据库技术是什么?我尝试了 SQLite,但部署对 SQLite 来说很头疼,因为用户可能没有在他/她的机器上安装正确版本的 Visual C++ 分发包。
【问题讨论】:
Visual Studio intellisense 使用 SQL Server Compact Edition。 Visual Studio 2014 是否已切换到 SQL Server Local? 见下面@ErikEJ 的回答。从幻灯片 15-16 开始关于肉类主题的预演:slideshare.net/tothc/hosting-simple-websites-on-azure 从长远来看,我仍然会振作起来并寻求其他东西,请参阅@Aaron 的回答 Microsoft 已从 Visual Studio 2013 中弃用 MS SQL Server Compact。我自己对此的解释是,CE 是一个无服务器数据库系统,目前只能在 Windows 机器上运行。微软的长期目标似乎是,用更新的 Visual Studio 版本提供真正的跨平台环境。因此,不能在 Linux、android 和 ios 上运行的无服务器数据库不再有意义。 【参考方案1】:是的,SQL Server Compact 已被弃用(请参阅the comments on this Connect item)。您应该使用 SQL Server Express 或 SQL LocalDB。一些帖子:
http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx
http://blogs.msdn.com/b/jerrynixon/archive/2012/02/26/sql-express-v-localdb-v-sql-compact-edition.aspx
http://erikej.blogspot.com/2011/01/comparison-of-sql-server-compact-4-and.html
http://erikej.blogspot.com/2012/07/the-state-and-near-future-of-sql-server.html
【讨论】:
好吧,也许它已被弃用,但我只想为原型 Azure 应用程序提供一些数据库,如下所述:dotnetcurry.com/showarticle.aspx?ID=883 现在提供的是 20MB 免费的 Azure SQL,但这对于原型来说可能还不够。因此,尽管不赞成,我还是会找到一种方法来继续使用 Compact 版本。我猜还有很多其他人。 @Csaba 这没有多大意义。 SQL Server Express 可为您提供 10 GB 的免费原型空间。 是的,但问题是您在哪里托管 SQL Express?借助 Azure“Web 应用程序”,您将获得一个带有 IIS 的节点,但不能使用 SQL Express AFAIK。我使用 SQL CE 解决了这个问题:由于它是 dll 中的 SQL 服务器,因此不需要在该节点中安装(您无法安装,因为您没有处于完整的 IaaS 级别)。所以这里的关键词是 Azure。如何在 Azure 上免费使用 SQL Express(最好使用 Web 应用程序)。 slideshare.net/tothc/hosting-simple-websites-on-azure 顺便说一句,我链接的幻灯片:在那次演示之后,我与更多仍在野外使用 CE 并且他们正在使用 VS 2012 的人进行了交谈。对于那些真正在 dll 中寻求数据库的 CE 场景的人,你会推荐 SQLite 吗?【参考方案2】:是的,VS 2013 中缺少它,但您可以使用我的 SQL Server Compact Toolbox 插件在 VS 2013 中完成几乎所有需要使用 SQLCE 执行的操作。你错过了什么?
【讨论】:
链接到上述vsix工具箱here @ErikEJ 嗨,Erik - 我将您的工具安装到了我的 VS 2013,但是当我尝试添加连接时 - 它显示错误消息“无法保存此连接以用于 EF6 工具,请确保SQL Server Compact DbProvider 已安装”...我已安装 Microsoft SQL Server Compact。你能指出方向吗?可能是什么问题? @Prokurors 建议您在 sqlcetoolbox.codeplex.com 上发布问题并提供工具箱中关于对话框的截图 @ErikEJ 这很奇怪,但是计算机重新启动后的问题(visual studio 重新启动并没有解决问题)就消失了:) 无论如何谢谢! 主题演讲,内容从幻灯片 15-16 开始:slideshare.net/tothc/hosting-simple-websites-on-azure【参考方案3】:正如其他人指出的那样,SQL Server Compact 已被弃用。但是,您可以使用不需要在客户端计算机上进行任何安装的 SQLite。
SQLite 依赖于 Visual C++ 运行时,但您不需要在客户端计算机上安装它。 system.data.sqlite 下载页面包含几个已经包含运行时的“静态”包。
所有“静态”包都包含本机或混合模式程序集 静态链接到适当版本的 Visual 的二进制文件 C++ 运行时。通常,这些包用于以下情况 客户机器可能没有必要的 Visual C++ 版本 运行时已安装,由于限制无法安装 特权。
例如,在我的机器上,我运行的是 Windows 8.1 x64,所以我进入了 64 位 Windows (.NET Framework 4.0) 的预编译静态链接二进制文件并下载了 sqlite-netFx40-static-binary-x64-2010-1.0 .90.0.zip。
此二进制包包含 x64 版本的所有二进制文件 System.Data.SQLite 1.0.90.0 (3.8.2) 包。视觉 C++ 2010 x64 的 SP1 运行时是静态链接的。 .NET 框架 4.0 是 必填。
然后我解压缩包并运行 test.exe 以确保一切正常。需要零安装。
【讨论】:
使用 NuGet 包更容易。 @infografnet:是的,现在推荐使用 nuget 获取 .NET 的 sqlite。它自动管理各种 .NET 版本的不同库依赖项。【参考方案4】:由于某种原因,在 VS 2013 中删除了对 SQL Compact 的服务器资源管理器的使用。在重新启用它时存在 UserVoice 问题。
http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4714470-support-sql-server-compact-in-visual-studio-2013?utm_campaign=shorturls&utm_source=visualstudio.uservoice.com
【讨论】:
但是你可以免费获得 VS 2013 Community 并使用 SQL Server Compact Toolbox 【参考方案5】:SQLite 也可作为单个 C 文件(合并)使用,如果您使用本机 C/C++,您可以直接将其编译到您的应用程序中。然后,它适用于您的应用程序可以打开文件的任何情况。无需额外的 DLL,也无需安装。
【讨论】:
【参考方案6】:对于遇到问题并登陆此站点的其他新手,我所做的是创建 SQL Server 数据库文件(在 LocalDB 中创建),然后在项目属性、发布选项卡和先决条件按钮中,有机会将 LocalDB 的下载和安装添加到已发布的包中 - 它可以工作。
【讨论】:
【参考方案7】:很遗憾,Visual Studio 2013 中没有对 SQL Compact 的内置支持。
但是你可以安装插件SQL Server Compact/SQLite Toolbox
我也在 VS 2013 中将这个工具用于 SQL Compact,非常简单明了
【讨论】:
以上是关于SQL Server Compact 是不是已从 Visual Studio 2013 中终止?的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2015 Express for Web 是不是支持 SQL Server Compact?
我是不是需要在所有客户端的桌面上安装 SQL Server Compact Edition?
Sql Server Compact Edition 3.5:数据是不是保留在数据库文件中?
如果我们使用实体框架和代码优先方法,是不是可以在给定路径上创建数据库(Sql Server compact)?