【问题标题】:How to create install package for app using local SQL server database如何使用本地 SQL Server 数据库为应用程序创建安装包
【发布时间】: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


【解决方案1】:

SQLite 是一个更好的选择,因为它是一个嵌入式数据库。这意味着它是您的应用程序的一部分,不需要额外的设置。它适用于存储不共享的每用户数据。

https://www.sqlite.org/whentouse.html

SQLite 仅需要其程序集进行部署。

SQLite deployment for .net application

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多