【问题标题】:how to deploy localdb database with app如何使用应用程序部署 localdb 数据库
【发布时间】:2015-07-26 17:11:15
【问题描述】:

我已准备好完成我为 Excel 创建的 winforms 插件,它使用 Add-In Express 发布。

此插件使用带有 mdf 文件的 sql server localdb 数据库。

我的主要问题是如何将 mdf 文件部署到目标机器。到目前为止,我已经手动将 mdf 文件复制到测试机器,但是在测试添加时它无法连接到文件(安装了 localdb)。

错误信息:

异常来源:.Net SqlClient 数据提供程序 异常类型:System.Data.SqlClient.SqlException 异常消息:无法打开登录请求的数据库“MyDatabase”。登录失败。

是否甚至可以将 mdf 放到机器上并且一切正常?如果是这样,是否有可以提供帮助的指南。还是我必须生成 sql 脚本才能在本地创建数据库?如果我必须生成 SQL 脚本,有没有办法在 Click-Once 部署方法中汇总它,或者我需要一个单独的过程?

【问题讨论】:

  • 没有安装 ms sql server 就不能使用 mdf。您不能只复制 mdf,首先您必须从现有服务器中分离并附加到新服务器(您的目标计算机,必须已安装 mssql 服务器 - 快速版本是免费的)。阅读本文(来自 SO):stackoverflow.com/a/10366632/3279496
  • 您应该使用SqlCE(.sdf 文件)而不是mdf。在 Sql Compact Edition 中,除了特殊的 SqlCE.dll 文件之外,您不需要安装 sql 或任何东西。
  • 好吧,你可以试试Sqlite或者Firebird或者类似的本地数据库,而不是Sql server。因为它们无需安装即可提供便携性。只是您需要将现有数据转换为新的数据库系统。
  • 我认为这可能是一个更好的参考:stackoverflow.com/questions/9655362/….
  • CE 已死(没有积极的开发,在维护阶段仅修复关键错误)。 Sqlite 和 Firebird(以及 CE)不支持各种功能,并且 ORM 也不支持。对于所有说你不能只复制 mdf 并附加到 LoclDB 的人,你显然不知道 LocalDB 是什么。

标签: c# sql-server winforms localdb addin-express


【解决方案1】:

这是您使用 LocalDB 部署 WinForms 应用程序的方式

  1. 您必须在您的应用程序上创建一个 localDB 并确保该应用程序将连接到该 localDB。(如果您不知道如何连接到本地数据库,这里 => Connect to LocalDB。并确保创建表和你以前的数据库一样的过程。

  2. 用代码(连接字符串)关注this答案(打勾)

  3. 在此之后,您必须安装 Advanced Installer 来为您的应用程序创建安装程序(我曾经选择的最佳选择)。

  4. 然后按照this 创建一个安装程序,确保添加当前版本的localDB(比如localdb 2019)安装程序的先决条件。

  5. 这使您的应用程序可以在任何电脑上运行,并且只需要安装 localdb 作为安装程序的先决条件。

  6. 确保在应用安装位置留言不要删除localdb。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2017-08-25
    相关资源
    最近更新 更多