安装程序功能,WIX与InstallShield Express

Dan*_*anO 19 deployment installer installshield wix visual-studio-2010

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

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

我看过了,但还没有找到一个功能矩阵,突出了快递版中没有的功能.我希望WIX通常非常强大,但更难以使用,并且听说过WIX不能很好地支持情况.

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

Wim*_*nen 10

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

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

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

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

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


lub*_*sko 6

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

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

  • @ anon2009,它可能会令人惊讶,但在大多数公司中,开发人员使用自己的安装程序几周比说服管理层购买1000美元工具更容易.此外,企业许可证的1000美元成本通常是每个开发人员,因此在大公司中,构建自己的工具实际上更便宜,更灵活,而不是购买十几个许可证. (4认同)
  • @ anon2009,我同意你的意见2009年,但令人遗憾的事实是,许多公司都非常仔细地审查预算,以至于管理者获得开发人员的时间比获得500美元更容易.短视?当然,但经理们认为他们"削减了成本". (2认同)