“Visual Studio Setup”项目是否适合不同版本的复杂设置?
应用程序相当大(> 500,000行代码)并且正在不断开发中。新版本每6至10个月发布一次。我们有多个配置文件(INI和XML),注册表项,数据库迁移脚本等。应用程序正在从Visual Basic 6.0迁移到.NET。旧的安装程序是使用Installshield构建的。对Installshield的反馈是:糟糕的适应性,糟糕的重用 - 这就是我们评估“Visual Studio Setup”作为替代方案的原因。
我们考虑的其他产品:
我们不想考虑的解决方案:
答案 0 :(得分:23)
不,不,不,不是Visual Studio部署项目。我参与过“大型”项目(15,000个文件,包含数千个合并模块和数百个InstallUtil自定义操作,因为VDPROJ几乎不会暴露任何基础MSI,如创建服务)。我可以继续谈论它真正的可怕之处。
我有一个由四名安装开发人员组成的团队,我们混合使用WiX和InstallShield。我们的典型安装有近100个功能,800个合并模块和15,000个文件。我们部署了您可以想象的几乎所有类型的资源,包括链接第三方安装以创建完整的产品或系统。我们能够为多个集成,发布和维护分支构建的十几种产品做到这一点。我们四个人支持一个由400多名开发人员组成的400多人组织。
我们能够做到这一点,因为InstallShield实际上可以为您提供相当多的重用。您可以使用产品配置和功能/合并模块来创建文件组和业务逻辑的封装。尽管如此,WiX确实做得更好(虽然在这里和那里我们仍然需要使用InstallShield更难学习和使用漏洞),所以我们一直在慢慢地将我们的基线过渡到WiX。
答案 1 :(得分:8)
不要去那里!!我们认为这对一些简单的安装人员来说是可行的,但事实证明这是一场噩梦......乍一看VS设置项目看起来还不错,但很快你就会意识到各种不足之处 - 这意味着你会写一个一堆自定义操作代码,用于完成最简单的任务(例如,服务处理和安装到明确定义的特殊目录中,这些目录无法从“漂亮的”安装项目GUI访问)。
您只能使用一些非常基本的表单来获取用户输入(例如,密码输入不可用)。安装程序版本号没有自动递增。文件处理非常糟糕 - 您必须手动选择每个文件。也就是说,您不能只是说“将此目录中的所有文件安装到该目录中” - 这是一项非常棒的任务,可以在包含数百个文件的目录中手动扫描新文件。
不,转到WiX,虽然学习曲线看起来可能比VS安装者稍差 - 但我很多次后悔我们没有这样做。