ClickOnce 或 InstallShield 能否设置 SQL Server 或 SQL Server Express?

Can ClickOnce or InstallShield setup SQL Server or SQL Server Express?

可以 ClickOnce 或 InstallShield 设置或配置 SQL Server 或 SQL Server Express 专门添加 sa 密码、启用命名管道、授予从文件夹读取的权限、添加主数据库我的客户端应用程序需要(.mdf 个文件)。

或者我是否需要从我的客户端应用程序中硬编码这些功能?

Can ClickOnce do it?

是的,但是……ClickOnce 可以像这样安装依赖项,但是由于 SQL 服务器安装的性质,我个人会避免这样做。对于那些匆忙或不喜欢在出现问题时处理奇怪问题的人来说,这不是一项任务。要显示如何 non-trivial 你可以查看帖子 How to deploy SQL Server 2008 Express as a prerequisite with ClickOnce and .

Can InstallShield do it?

是的,但可能而且很可能会出现曲线球。你可以这样做:

  • 链式安装。 This whitepaper 谈论如何使用链式 MSI。
  • 在安装程序中包含 InstallShield SQL Server Express 必备包(如前所述 here

个人不会采用这两种方式 - 相反,我会编写一个自定义操作来调用 SQL 安装程序并传入收集的参数(即 SQL 的安装位置、密码用于初始登录等)。 SQL 安装也不是严格的事务性安装 - 它可能会在安装过程中失败,并且某些更改不会被撤消。

如果您设法将其作为安装程序引导程序放在一起,请注意 Can't install SQL Server by using InstallShield or bootstrapping application.

等问题

我还建议您为用户提供安装 SQL 服务器的选项,因为他们可能已经有可用的实例 - 尽量不要总是安装它。

What about database creation and configuration?

这可以通过多种方式完成,但是在 MSI 安装程序中完成这一切开始变得非常复杂 - 为最终用户编写一个简单的配置实用程序,或者将功能构建到您的应用程序中。

您如何着手创建数据库和配置 SQL 实例在很大程度上取决于您的要求,您没有在问题中指定。