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 实例在很大程度上取决于您的要求,您没有在问题中指定。
可以 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 实例在很大程度上取决于您的要求,您没有在问题中指定。