安装程序功能,WIX与InstallShield Express

时间:2010-02-04 18:37:53

标签: deployment visual-studio-2010 installer wix installshield

实际将产品推向生产的程序员需要安装程序。 (先发制人的“编程相关”理由。)

为了部署一套新的内部企业应用程序和服务,我正在尝试使用WIX和Visual Studio 2010附带的InstallShield Express版本。

我看过,但还没有找到一个功能矩阵,突出了快递版中没有的功能。我希望WIX通常非常强大,但更难以使用,并且听说过situations that WIX doesn't support well.

有没有人找到功能矩阵,或者有关管理内部部署的长期最佳方式的其他建议?

3 个答案:

答案 0 :(得分:10)

如果您需要在复杂的环境中管理安装程序,我发现wix是一个很好的选择(尽管非常陡峭的学习曲线),因为

  • 设置定义以XML格式存储
  • 它使您可以完全控制底层的Windows安装程序技术; XML模式通常紧跟Windows安装程序数据库模式(这也是学习曲线如此陡峭的主要原因)
  • integrate into your automated build
  • 很容易
  • 部分设置可以是generated automatically
  • 它允许您定义小型可重用模块并管理它们之间的复杂依赖关系。
  • 没有成本或许可问题(在wix之前我们都必须使用单个“Installshield PC”)

为什么XML格式是一个优势:这使您可以充分利用代码版本控制系统,如subversion或mercurial。查看更改,检查历史记录甚至跨分支合并更改是一件轻而易举的事。将其与不透明二进制blob的installshield项目进行比较。

我的意思是管理复杂的依赖关系:在我们的例子中,我们有一大堆可重用的组件库,它们之间有一组复杂的依赖关系,以及许多构建在它之上的应用程序。在wix之前,当一个新的依赖项被引入时,这是一场噩梦:所有设置都必须更新。

现在使用wix,每个库都有一个ComponentGroup,组织成一对wixlibs。每个组件组引用其依赖的其他组件组ComponentGroupRef。应用程序设置开发人员只需要引用直接依赖项的组件组,wix将通过遵循引用来完成剩下的工作。因此,引入新的依赖关系只需要进行一次本地更改。我们的自动构建和wix完成剩下的工作以重新生成所有设置。

答案 1 :(得分:6)

InstallShield Express用于基本部署(它只是荣耀的WinZip)。您还可以查看我最喜欢的AdvancedInstaller。他们也有免费的快递版,但我认为它们都没用,因为如果你需要对IIS,MS SQL,Active目录,GAC等做任何事情,你将需要“企业级”版本。 WiX是免费的,但学习曲线非常陡峭,不值得学习。我很遗憾学习它。

如果您只需要内部部署而且不能在安装程序上花费1,000美元,那么只需从头开始创建自己的“安装”项目。 System.EnterpriseServices.Internal命名空间包含IIS,GAC等的一些有用的包装器。System.Configuration.Install.ManagedInstallerClass可以帮助您部署Windows服务。换句话说,您可以从头开始创建自己的程序,这些程序可以处理部署主要产品的所有必要步骤。许多公司不会将其用作旗舰产品的商业安装人员,他们自己制作。

答案 2 :(得分:1)

可以在此处找到Install shield的功能矩阵:

http://www.flexerasoftware.com/products/installshield/features.htm

但是,对于IIS部分(我假设您需要基于我之前问题的链接的IIS),它所说的只是“限制”。由你来猜测有限意味着什么,但我认为它不会支持企业级部署。