如何使用 .mdf 文件公开 C# 项目

Posted

技术标签:

【中文标题】如何使用 .mdf 文件公开 C# 项目【英文标题】:how to C# project public with .mdf file 【发布时间】:2015-09-04 12:55:15 【问题描述】:

如何发布带有 .mdf 数据库的 C# 项目?我希望它可以轻松设置并且不需要安装 sqlserver。我需要更改为 .sdf 吗? 本项目仅在本地使用。

【问题讨论】:

您使用的是 LocalDb 吗?然后它需要客户端安装,但它不是完整的 SQL Server 安装。 【参考方案1】:

.MDF 文件是 SqlServer 主要数据文件,我怀疑您是否可以在没有安装 SqlServer 的情况下使用它们,至于 SqlServer 紧凑型数据库 (.sdf),它们可以按照您的需要使用,但从一个转换到另一个不仅仅是更改的问题扩展名,它们是不同格式的数据库。

您需要创建一个新的 .sdf 并复制您在 .mdf 中的架构,然后以某种方式复制您的数据,您还需要调整您的项目,因为对 .sdf 上数据的访问不同于 .sdf 上的数据访问。 mdf 更不用说 .sdf 不支持 .mdf 所做的所有事情

【讨论】:

感谢您的回答,但我现在使用 vs2013,但在此链接中找不到可以创建 .sdf、link 的位置,我发现 Microsoft 现在放弃了对 .sdf 的支持,所以可能我换到vs2012?我觉得这对我来说很糟糕,我的数据库很小所以不用担心转换数据和架构,有没有简单的方法可以让我发布我的项目?:-0~【参考方案2】:

您为什么不简单地使用 .mdf 文件部署您的应用程序以及在未安装 Visual Studio 的用户计算机上安装 SQL 本地数据库?

确保安装正确的 LocalDB。即 32 位上的 x86 版本的安装程序和 64 位机器上的 x64 安装程序。两种架构都有两种不同的安装程序。

【讨论】:

就像他说他不想安装sql server @Marcin: 可能他不想安装完整的 SQL server 包,但是安装一个 LocalDB 可以毫不费力。 这对我来说可能是个好方法,如果我找不到更好的方法,我会用这个~谢谢。 @hypheni:我的错,你是对的。有关您的解决方案的更多信息,请访问:blogs.msdn.com/b/sqlexpress/archive/2011/07/12/… @Marcin:感谢分享链接。【参考方案3】:

Sql Server 未作为 Windows 安装的一部分安装,因此您不能在应用程序中使用 *.mdf 文件,除非已安装 Sql Server 并且您拥有相应的权限。

可以随您的应用分发 Sql Server Express Edition 或 Sql Server Compact Edition(推荐)。

【讨论】:

为什么说推荐精简版?较新的 Visual Studio 版本前段时间放弃了对它的支持,现在 LocalDB 似乎是推荐的方式。此外,精简版无法处理 MDF 文件。 localDB is thislink link2?不操作 .mdf 吗?你知道怎么解决吗?【参考方案4】:

MDF 文件是 SQL Server 数据库的一部分。如果没有 SQL Server(或 Express),您将无法使用它们。

如果您需要一个可嵌入的数据库,SQLite 是一个不错的选择。 Firefox 还附带一个嵌入式 SQLite 实例,因此它是一个很好/经过验证的选择。 SQLite 还与 ADO.NET 很好地集成;我写了一篇关于那个here的文章。

【讨论】:

是的,我知道这是使用 sqlite 的好方法,但我的产品经理不这么认为,他让我使用 sqlserver,因为他认为它更好=.=

以上是关于如何使用 .mdf 文件公开 C# 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Visual Studio 使用我的数据库,而不是 ASP.NET MVC 项目中 App_Data 文件夹中的 .mdf 文件?

如何高效地处理数百个项目中的数千个 C# 文件?

c# 如何连接SOL

如何打开 *.mdf 文档

NHibernate:释放 .mdf 文件

将数据从 C# 写入 MDF 数据库