2012-04-11 116 views
1

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

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

+5

在每个用户的计算机上安装SQL Server是不是过分矫枉过正? – 2012-04-11 12:21:15

+0

@MarekGrzenkowicz:不是,如果这是一个先决条件。 – 2012-04-11 12:23:55

+0

@yeshwant Lautre:在[this]中有SQL Server 2008 Express的指导(http://blogs.msdn.com/b/manisblog/archive/2008/12/22/how-to-deploy-sql-server- 2008-express-as-clickon-prerequisite.aspx)博客。 – MatthiasG 2012-04-11 12:26:13

回答

4

Visual Studio的付费版本提供了创建安装程序包的功能,但是,该功能极其缺乏,并且在VS11中被删除。我已经使用过了,我可以说,它不值得使用。那里还有其他免费的部署工具。我建议Windows Installer XML

+0

这几乎是一个字我正要发布的答案;-) VS设置项目肯定非常有限 - WIX是一个好方法。 – Ricibob 2012-04-11 12:29:23

1

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

要设置prerequist:

  • 转到项目属性(右键点击Setup项目 - >属性) ,你会发现,对话框上的“先决条件”按钮。
  • 这会弹出一个对话框,列出位于“Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper” 文件夹中的所有引导程序包 。选择/ cehck“SQL Server 2005 Express Edition SP2 x86”如果 多数民众赞成在你想要的。
  • 如果你想要完整版本的SQL服务器,那么你将需要找到它的引导程序包 - googing(SQL 2005完全引导程序包)应该得到一个结果。

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

0

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

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

之前进入这一点,虽然我想与大家分享我的非常苦体验使用SQL Server作为prerrequesite和为什么你应该避免它(无论部署您使用的系统,实际上)

看,那是提供给您的Visual Studio实例prerrequesites取决于一个文件夹现在在安装VS在同一台机器上: C:\ Program Files文件\微软的SDK \的Windows \ v7.0A \引导程序\软件包 (这是用于VS 2010的,如果你使用64位的话,用VS 6.0的v6.0A替代v7.0A,用Program Files 9x86替换Program Files)。

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

product.xml:一个XML文件,用于描述prerrequesite到Visual Studio 。这个文件是最重要的一个。它列出:

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

一堆可执行文件(MSI,EXE):安装prerrequesite所需要的文件(有可能没有,如果product.xml指在线位置在哪里得到这些文件)。

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

现在有问题该系统两大类:这种设置系统的

缺点:

首先,product.xml文件是建立非常困难。这很可能意味着您要计算校验和,创建证书,探索Windows Installer安装日志文件,使用名为Bootstrapper Manifest Generator的错误工具。你会发现自己的搜索问题,唯一的结果将是你自己的无法解答的堆栈溢出问题。相信我,我一直在那里。其次,整个助推器的东西远不是(源)控制的,而且是对团队工作和持续集成概念的侮辱。让您的项目在Program Files中安装配置意味着:

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

缺点的SQL Server作为prerrequesite:

乍一看,该SQL Server install command line似乎很简单。你决定实例的名称,如果是安装或升级,访问权限等。事情是,当你真正尝试在实际生活中遇到问题时,我无法计算你遇到的问题的数量:

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

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

现在你可以做什么?

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