【问题标题】:How to deploy application with sql server database on clients如何在客户端上使用 sql server 数据库部署应用程序
【发布时间】:2016-01-02 13:18:52
【问题描述】:

我为我的客户设计了一个帐户软件。我使用带有存储过程的 SQL Server 2008 数据库。它是在 Visual Studio 2010、.NET Framework 3.0 中开发的。我有超过 500 个使用 Windows 7 的客户端。

主要问题是:

SQL Server 运行时是否自动随 .NET Framework 一起安装?由于 MS Access 数据库不需要在客户端上安装 Office。

我无法在每个客户端上安装 SQL Server 2008,这是一项艰巨的工作。此外,客户对安装过程也没有很好的了解。

如何在客户端上运行 SQL Server 数据库而不在客户端上安装它的设置?是否有任何运行时文件或设置?

【问题讨论】:

  • 您可以创建一个设置项目并将sql server express和dotnet框架标记为先决条件。
  • 他们的系统上已经安装了点网框架。因为它是Windows 7的一部分。但是客户端如何下载和安装sql server?他们拒绝我的软件并使用其他软件,只是因为数据库。
  • 有没有什么小方法可以安装sql server,让客户端也能轻松安装?
  • 搜索SQL Server 2016 Express LocalDB。我假设您希望 SQL Server 在本地 PC 上运行,而不是与 LAN 上的其他 PC 共享。
  • 您尝试过 SQLLite 或 Compact SQL。 SQL Server 对你的应用程序来说可能很重。

标签: c# .net sql-server winforms deployment


【解决方案1】:

选项 1 - 设置项目

使用 Visual Studio,您可以创建安装项目并安装安装期间所需的先决条件。

安装过程非常简单,最终用户点击下一步按钮即可安装应用程序和先决条件。

以下是创建安装项目的步骤:

1- 创建一个 c# Windows 窗体应用程序

  1. 创建 C# Windows 窗体项目
  2. 添加新项目并将 SQL Server 数据库添加到您的应用程序
  3. 向您的应用程序添加一个表格并在其中填写一些数据
  4. 在主窗体中显示数据。

2- 创建安装项目

  1. 添加新项目 → 设置和部署 → 设置项目
  2. 右键单击设置项目并添加项目输出,然后从主项目中选择主要输出
  3. 右键单击设置项目并添加项目输出并从主项目中选择内容文件
  4. 右键单击安装项目并单击属性并单击先决条件并选择 SQL Server Express
  5. 选择 .Net 框架
  6. 选择 Windows 安装程序
  7. 选择单选按钮从与我的应用程序相同的位置下载先决条件。
  8. 右键单击左侧窗格中的用户桌面并添加新快捷方式并选择应用程序文件夹,SampleApplication 的主要输出,然后单击确定并将快捷方式重命名为您需要的名称。
  9. 重建解决方案。
  10. 重建设置项目
  11. 进入安装项目的输出目录,运行setup.exe

就这么简单。

有关更多信息,请查看以下文档文章:

  1. How to: Create or Add a Setup Project
  2. How to: Install Prerequisites in Windows Installer Deployment
  3. Walkthrough: Using a Custom Action to Create a Database at Installation

选项 2 - ClickOnce

使用 Visual Studio 的另一个选项是使用 ClickOnce 发布。

为此,在项目的属性中,在发布选项卡中,单击先决条件按钮,您可以在先决条件中选择 SQL Express。这样,您只需将数据库文件设置为复制到输出目录,并在连接字符串中使用 AttachDbFileName:Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\Database.mdf; Initial Catalog=Master"
有关更多信息,请查看以下文档文章:

【讨论】:

  • 客户可能会因为该软件的设置较大而拒绝使用该软件。
  • @ArtandArtisticartandartisti 客户应自行接受您的设置或安装先决条件 :)
  • 他们不能自己安装先决条件。想想你,你会安装一个需要大量 Next、Next、Select、Next 等的软件吗?客户需要一个体积小巧、安装安静且无需技术知识即可轻松安装的软件。
  • @ArtandArtisticartandartisti 你应该知道在客户端部署数据库的每种方法都会导致安装sql server,大小没有区别:)
  • @ArtandArtisticartandartisti 无论如何,我是来帮助你的,这些选项是我想到的最好的事情。希望这些选项可以帮助您解决问题,并且您可以在客户端上安装您的应用程序 :)
【解决方案2】:

LocalDB 是微软目前推荐的解决方案。它允许您直接连接到数据库文件,而无需安装完整 SQL Server 或 SqlExpress 的实例。它与完整版的 SQL Server 完全兼容。客户端没有安装要求,因为库在构建时与您的应用程序一起打包。

您可以阅读更多关于它的信息here

【讨论】:

  • OP 正在使用 Visual Studio 2010 和 .Net Framewrok 3.0 和 SQL Server 2008。
  • 我们可以用 SQLCE 和 MsAcces 等密码保护它吗?这样客户的财务信息就可以得到保护?
  • 是的,密码可以嵌入到应用程序中并在连接字符串中传递,请注意,我目前正在研究此解决方案是否可以与基于 Reza Aghaei 的评论的 3.5 框架一起使用,这可能不适合您。
  • 这个 Stackoverflow 问题似乎表明 LocalDb 可以与 3.5 框架一起使用,但是安装可能更复杂。 stackoverflow.com/questions/24527528/…
  • 如何将密码附加到数据库。因为 mdf 文件将在用户机器上,他/她可以很容易地看到我的逻辑和表格。有什么办法保护它?
【解决方案3】:

您可以在您的设置中安装 sql express 静默安装 这种方式不显示任何安装 sql express 的向导 阅读此Link

【讨论】:

    猜你喜欢
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多