1

我在 c# 中有一个 .net 应用程序。我使用 SQL Server 2005 作为数据库。我想为它创建设置。我希望当我运行安装程序时,它会自动安装我在先决条件中添加的 SQL Server 2005。

请帮助如何创建设置...?

4

3 回答 3

4

Visual Studio 的付费版本具有创建安装程序包的能力,但是,该功能严重缺乏,并且在 VS11 中被删除。我用过,我可以说,它不值得用。还有其他免费的部署工具。我推荐Windows Installer XML

于 2012-04-11T12:28:03.340 回答
1

VisualStudio 确实有新项目 -> 其他项目类型 -> 安装和部署 -> 安装项目。正如 Kendall 指出的,这是一个非常有限/基本的安装程序解决方案。但是,如果您真正想要做的只是将 SQL Express 作为先决条件并且您安装了应用程序,那么它可以管理它(但仅此而已)。

要设置先决条件:

  • 转到项目属性(右键单击设置项目-> 属性),您将在该对话框中找到“先决条件”按钮。
  • 这将打开一个对话框,其中列出了位于“Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper”文件夹中的所有引导程序包。如果那是您想要的,请选择/cehck“SQL Server 2005 Express Edition SP2 x86”。
  • 如果您想要完整版的 SQL Server,那么您需要为其找到一个引导程序包 - 搜索(sql 2005 完整引导程序包)应该会产生结果。

请注意,SQL Server 2005 将限制您安装 x86 - 如果您想要 x64 安装,请使用 SQL Server 2008 Express/full。

于 2012-04-11T12:34:51.793 回答
0

您可以在 Visual Studio 中创建一个安装项目。它可以创建离线设置,其中可以包括先决条件或配置为在安装离线设置时从在线位置下载所述先决条件。

http://msdn.microsoft.com/en-us/library/2kt85ked.aspx

在进入这个之前,虽然我想分享我使用 SQL Server 作为先决条件的非常痛苦的经历,以及为什么你应该真正避免它(实际上,无论你使用哪种部署系统)

请参阅,Visual Studio 实例可用的先决条件取决于安装 VS 的同一台计算机上存在的文件夹:C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages(这是针对 VS 2010 ,将 v7.0A 替换为 VS 2008 的 v6.0A,如果您使用的是 64 位,则将 Program Files 替换为 Program Files 9x86)。

你现在可以去检查一下,你很可能会看到一个文件夹列表,称为引导程序包,它们具有以下基本结构:

product.xml :一个 xml 文件,描述 Visual Studio 的先决条件。这个文件是最重要的。它列出:

  • 安装、升级或卸载 prerrequesite 所需的文件
  • 评估条件以决定采取何种行动。例如:系统是 x86/x64 吗?是系统XP,服务器2003等?prerrequesite 已经安装了吗?哪个版本?哪种语言?
  • 根据这些条件采取的行动。通常,与您正在安装的 exe 文件一起使用的命令行参数。

一堆可执行文件(msi、exe):安装 prerrequesite 所需的文件(如果 product.xml 指的是获取这些文件的在线位置,则可能没有)。

可选地,一些具有语言环境名称的文件夹:您的 prerrequesite 的本地化。

现在这个系统有两大类问题:

此设置系统的缺点:

首先,product.xml 文件很难构建。这很可能意味着您要计算校验和、创建证书、浏览 Windows Installer 安装日志文件、使用一个非常有问题的工具,称为Bootstrapper Manifest Generator。你会发现自己在谷歌上搜索问题,唯一的结果将是你自己未回答的 Stack Overflow 问题。相信我,我去过那里。

其次,这整个助推器的事情完全不受(源)控制,并且是对团队合作和持续集成概念的侮辱。在 Program Files 中进行项目安装配置意味着:

  • 对于您的所有项目,它必须是相同的先决条件。
  • 没有版本控制。
  • 您必须在所有可以构建解决方案的机器上保持整个 prerrequesite 文件夹一致,包括 CI 服务器(如果它被多个团队使用,这可能是一个巨大的麻烦)。

SQL Server 作为先决条件的缺点:

乍一看,SQL Server 安装命令行似乎很简单。您决定实例的名称,是安装还是升级,访问权限等。问题是,当您在现实生活中实际尝试时,我无法计算您在路径上会遇到的问题数量:

  • SQL Server 不会从一种语言升级到另一种语言。
  • SQL Server 不会在 x64 系统上从 SQL Server x86 升级到 SQL Server x64。
  • SQL Server not en-US 不会安装在 en-US Windows 上。
  • 更一般地说,如果同一台机器上已经安装了任何接近 SQL Server 的东西,SQL Server 很可能无法安装。

如果您手动运行设置,它会告诉您原因。但是,如果您尝试将其作为先决条件进行,则意味着您必须预见可能发生的每一个配置问题。相信我,你永远看不到它的结局:SQL Server 设置如此复杂是有原因的......

现在你能做什么?

  • 要求您的客户安装 SQL Server。这是一个不错的选择,无论如何他们都必须管理 SQL Server 许可证,因为他们是使用它的人。也许他们已经拥有了。
  • 自己安装。
  • 使用不同版本的 SQL Server,如 SQL CE。非常轻量级,功能较少,但如果您只想要一个本地数据库,它可以做到这一点。
  • 使用不同的 RDB 系统。我不认识它们,也许它们更容易安装。
于 2012-04-11T13:11:31.363 回答