Visual Studio安装项目适用于复杂设置吗?

17

“Visual Studio Setup”项目适合不同版本的复杂设置吗?

该应用程序相当庞大(> 500,000 行代码)且正在不断开发中。每 6 到 10 个月会发布一个新版本。我们有多个配置文件(INI 和 XML)、注册表键、数据库迁移脚本等。该应用程序正在从Visual Basic 6.0 迁移到 .NET。旧的安装程序是使用Installshield构建的。对于Installshield的反馈是:适应性差,重用性差 - 这就是为什么我们正在评估“Visual Studio Setup”作为替代方案。

我们考虑的其他产品:

免费解决方案

商业解决方案

我们不想考虑的解决方案:


嗨,罗伯特,现在已经过去10个月了。我很好奇你决定使用什么,以及它的效果如何。谢谢。 - joerage
1
我们决定采用Advanced Installer。目前的印象非常积极,但由于迁移项目尚未完全完成,我们不知道更新和变更集是否易于创建、管理和交付。也许在另外10个月我们会了解更多情况 :-) - Robert
1
@joerage 又过了一年,我想给你一个小小的更新(Robert 是我的同事,而我负责实现设置)-- Advanced Installer 没有出现任何问题。它暴露了许多强大的 MSI 功能,并且高度可定制。此外,由于它使用 XML 文件格式,因此它与版本控制兼容,并且如果存在回归,则更改很容易进行审查。 - Stefan Paul Noack
2个回答

21
不,对于Visual Studio部署项目说四个“不”。我曾在“大型”项目中使用过它(15,000个文件,数千个合并模块和数百个InstallUtil自定义操作,因为VDPROJ几乎没有暴露出底层MSI的任何内容,例如创建服务)。我可以花上几个小时来讲述它有多可怕。
我有一个由四名安装开发人员组成的团队,我们使用WiXInstallShield的混合。我们的典型安装包拥有近100个功能、800个合并模块和15,000个文件。我们部署几乎所有类型的资源,包括链接第三方安装程序以创建完整的产品或系统。我们能够在每个产品上进行此操作,每个产品都建立在多个集成、发布和维护分支之上。我们四个人支持着一个由400多人组成的组织,其中大约有250名开发人员。
我们能够做到这一点是因为InstallShield实际上可以给你相当多的重用性。您可以使用产品配置和特性/合并模块来创建文件和业务逻辑组的封装。不过,WiX做得更好(虽然更难学习,而且还有一些功能缺失,我们仍然需要InstallShield),因此我们一直在逐渐将基线转移到WiX上。

3
我可以问一下是哪种软件拥有这么多功能和合并模块吗? - StingyJack
以 Visual Studio 的复杂度为出发点思考。不同的产品和版本具有可重用组件,包括在产品之间进行重复使用(例如 SQL Server 管理控制台使用 Visual Studio 集成 shell)。 - Christopher Painter
要查看我可以公开讨论的产品列表,请访问以下网址:http://www.overwatch.com/products/multi-source_main.php - Christopher Painter
谢谢,我应该想到其中一些是政府相关的东西。 - StingyJack

8
不要去那里!我们认为对于一些简单的安装程序来说是可行的,但实际上它却成为了一场噩梦...乍一看,VS设置项目看起来还不错,但很快你就会意识到各种不足之处 - 这意味着你需要编写大量自定义操作代码才能完成最简单的任务(例如,服务处理和安装到无法从“好看”的设置项目GUI访问的特定目录中)。你只能使用一些非常基本的表单来获取用户输入(例如,密码输入是不可能的)。没有自动递增安装程序版本号。文件处理很糟糕 - 你必须手动选择每个文件。也就是说,你不能只说“将此目录中的所有文件安装到该目录中” - 在一个有数百个文件的目录中手动扫描新文件是一项艰巨的任务。相比之下,WiX更好,尽管学习曲线可能比VS安装程序稍微陡峭一些 - 但我已经多次后悔我们没有这样做。

对于添加文件,您不能使用脚本操作安装项目的项目文件吗? - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接