【发布时间】: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