【问题标题】:how to deploy .mdf file如何部署 .mdf 文件
【发布时间】:2011-04-26 18:51:45
【问题描述】:

我正在尝试制作一个使用本地 .mdf 数据库文件(未附加到 sql 服务器)的应用程序。 Visual Studio 说我必须先安装 SQL Server Express。 我想知道如何将应用程序部署到客户的盒子。他们是否还需要安装 SQL Server Express?

非常感谢

【问题讨论】:

  • mdb = MS Access / SQL Server 使用 .mdf/.ndf/.ldf - 那么现在是什么??

标签: sql-server mdf


【解决方案1】:

他们需要安装 SQL Server Express。安装后,您需要将数据库文件 (.mdf) 附加到服务器。

【讨论】:

  • 感谢您的回答。我不想将它附加到服务器。我只是想让它独立存在。这是否需要安装 sql express,因为我不希望我的客户安装它。
  • 是的。 .mdf 文件必须附加到 SQL Server 实例才能使用。如果这不是一个选项,请调查 SQL Server Compact Edition。此服务器的文件具有 .sdf 扩展名。我不知道您使用的是什么编程语言,但如果它是 .NET 的一种风格,SQL Server CE 可以嵌入到您的应用程序中,并且不需要独立的服务器。
  • 如果您希望您的数据库是独立的并且不需要服务器,请使用 MS Access (*.mdb/*.accdb) 或 SQLite 数据库。如果您需要使用用户名和密码保护您的数据库,请使用 Access。
【解决方案2】:

不要部署 MDF。让您的应用程序使用部署脚本并运行创建数据库的脚本,以及创建数据库中所有对象的脚本。部署二进制文件(.MDF)的问题是您将无法升级它。来到您的应用程序的 v. 1.1,您将面临如何部署您的 MDF,但保留用户保存在 .MDF 中的所有数据的困境。这不是一个小问题。 Red Gate 正在尝试推送其contiguous integration solution,该contiguous integration solution 使用差异工具生成维护/升级脚本。微软正在推动基于vsdbcmd 工具完成的差异比较工作的数据库项目。我不喜欢基于差异的工具,它们容易做出错误的决定,我更喜欢explicit upgrade scripts

【讨论】:

  • 您说得对,工具可能会做出糟糕的决定,因为它们无法再次猜测用户意图。在 Red Gate,我们很快将在 SQL Compare 中添加一项新功能,该功能允许用户自定义迁移脚本并将其保存以便在未来跨相同数据库版本的迁移中重复使用。如需更多信息,请通过 red-gate.com 联系 david.atkinson。
  • 是否有理由不在初始安装时部署 mdf,然后使用脚本进行升级?
  • 您依赖于正确的版本 - 使用初始脚本,该脚本将适用于客户端使用的任何版本(当然取决于您使用的任何版本特定功能)。
【解决方案3】:

在解决方案资源管理器中右键单击您的项目

然后在新项目上

然后选择基于服务的数据库

创建一个数据库并使用它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-09
    • 1970-01-01
    相关资源
    最近更新 更多