【发布时间】:2020-03-30 21:09:18
【问题描述】:
我编写了一个小应用程序来了解有关 SQL 的更多信息并尝试使用实体框架。第一次执行时,我的应用程序在本地创建数据库,然后打开现有数据库。到目前为止,一切都很好 - 它在我安装了 SQL Server 2017 的笔记本电脑上运行良好。
我尝试将程序集复制到我的台式机上,结果也按预期工作,尽管没有安装 SQL Server。
但是当我尝试将程序集复制到另一台笔记本电脑时,应用程序无法运行。我看到的例外是:
发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。未找到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:52 - 无法找到本地数据库 运行时安装。验证 SQL Server Express 是否正确安装 并且本地数据库运行时功能已启用。)
所有机器都是 Windows 10。(台式机安装 Visual Studio 2019 重要吗?)
我似乎无法在这里找到与我的问题相关的帖子。 (我可能没有很好地表达我的查询......)
无论如何,我不希望其他用户需要安装 SQL Server(Express 或其他)。我需要在安装中包含什么?
是否可以通过使用 ClickOnce 部署(又名发布向导)或多或少地自动完成?还是我需要用 Wix 代码构建一个 .msi?
SQLite 是更好的选择吗?我的应用程序的用户不会共享数据库;每个人都有自己的。
我在这篇文章中看到了 SQL Server Compact Edition 的提及:ASP.NET MVC - Switching from SQL Server Express to Compact Edition - Connection Issue,但是当我尝试运行它时,似乎 Microsoft 不再提供它。而且我相信我已经在使用 SQL Server Express(上面的错误消息似乎证实了这一点)...
目前我已经通过使用 ClickOnce 部署解决了这个问题。在短期内,我想更改安装以在安装包中包含依赖项(.NET 和 SQL 运行时),而不是在安装时下载它们。
但我想知道 SQLite 是否会是一个更好的长期解决方案...我对 SQLServer 感到赞赏的一件事是,我可以使用 SQLServer Management Studio 来获取应用程序之外的数据库,这样我就可以验证什么是应用程序已经完成。我也认为这对用户来说是一件好事,因为如果应用出现问题,他们总是有第二个选择来获取他们的数据。
SQLite 是否提供类似于 SQLServer Management Studio 的工具来访问数据库?
【问题讨论】:
-
您可以使用 SQLite 浏览器来设计和编辑数据库sqlitebrowser.org 还有一个名为 SQLite compact 工具箱的 Visual Studio 扩展,它添加了这些功能
标签: c# .net sql-server windows installation