Deployment 什么';拥有MSI安装包的主要优势是什么?

Deployment 什么';拥有MSI安装包的主要优势是什么?,deployment,windows-installer,installation,Deployment,Windows Installer,Installation,我以为这会出现在网络上的某个地方,但我无法用谷歌搜索它: 考虑到创建MSI软件包的复杂性(与NSIS、InnoSetup等相比),有什么令人信服的理由去经历所有的混乱(使用MSV蹩脚的安装项目向导,学习一个全新的语言/生态系统只是为了安装程序(WiX),或者支付高昂的许可费(InstallShield))为了制作MSI安装程序 如果有真实世界的观点或经验(甚至证明MSI真的一文不值)而不是显而易见的,那就太好了,例如:)看看这个: 我非常确定,有些企业需要MSI格式在数千台机器上远程批量安装应用

我以为这会出现在网络上的某个地方,但我无法用谷歌搜索它:

考虑到创建MSI软件包的复杂性(与NSIS、InnoSetup等相比),有什么令人信服的理由去经历所有的混乱(使用MSV蹩脚的安装项目向导,学习一个全新的语言/生态系统只是为了安装程序(WiX),或者支付高昂的许可费(InstallShield))为了制作MSI安装程序

如果有真实世界的观点或经验(甚至证明MSI真的一文不值)而不是显而易见的,那就太好了,例如:)

看看这个:


我非常确定,有些企业需要MSI格式在数千台机器上远程批量安装应用程序。但是,我不与此类组织打交道,因此不确定。

MSI(或ClickOnce)是获得Windows Vista徽标程序(Microsoft官方认证)所必需的。我相信Windows7删除了这一要求,但使用MSI获得认证更容易(请参阅)

不过,您不需要购买任何昂贵的第三方安装程序包。如果你想要MSI,我建议你使用并学习它。一旦你熟悉了它,它就会运行得很好。

另一本好书是:


我做了14年的全职安装开发人员。我的前7年是InstallScript Setup.exe风格的项目,而我的最后7年是基于MSI的。起初我抵制MSI,但在使用它6个月后,我真正相信它有多好。

我不认为在所有情况下都有一个主要优势。与其他类型的安装程序相比,以下是我喜欢它的一些地方:

  • 安装逻辑和代码以可访问的格式包含在数据库中。 我在调试时非常喜欢这个。您可以直接使用Orca(从MS免费下载数据库编辑)等工具编辑数据库,然后再次运行安装程序以测试更改,而不是重新构建安装程序。更新您的自定义代码,临时调整某些内容,更改操作顺序,无论您需要做什么

  • 修补。安装程序服务及其相应的工具知道如何创建包含更新文件增量的修补程序,而不是完整的文件。它允许维护尺寸保持合理

  • 行政图像。安装程序可以创建管理映像。如果已生成修补程序,则可以将修补程序应用于管理映像,然后可以从管理映像而不是原始安装程序运行新安装。就像操作系统映像中的滑动流补丁一样。如果你要把你的应用推广到大量的机器上,那么在安装后不需要推出一堆补丁是很酷的


其他有趣的功能包括转换、从源代码运行、检测和修复、组件共享等。

您能详细介绍一下吗?似乎你已经有了经验,可以回答你发现的“主要优势是什么”这个问题了?您特别相信什么?作为一名ISV,作为安装开发人员,我的主要优势是能够专注于安装程序需要做什么,而不是如何做。作为一名企业工程师,其主要优势在于能够检查和转换软件包。我花了两年时间将行为不端的安装程序“重新打包”到遵循最佳实践的MSI中,这样我就可以在全球成千上万台机器上无声地部署(安装和卸载)它们。非微星的可以做到这一点,但我遇到的绝大多数(很多)做得很差。我要说的是,这些功能对大多数人来说太先进了。作为一个清晰的回答被接受。谢谢@Ed—您遗漏了修补的一个最重要的好处,即您可以在不触发UAC提示的情况下对应用程序应用更新。如果不进行修补,您必须安装一些在特权模式下运行的自定义windows服务,以便在不提示管理员访问的情况下安装应用程序的更新。-MSI文件的重要优点的执行摘要样式列表。