首页 文章

使用什么安装产品? InstallShield,WiX,Wise,高级安装程序等[关闭]

提问于
浏览
49

我目前正在调查我们目前正在使用的安装包(Wise Installer 9),并转向处理Windows Vista,Windows 7和64位系统之类的东西 . 安装人员的本地化将是有益的,因为我们也有许多加拿大法国客户 .

我们目前使用以下技术安装软件包和实用程序:

  • 进步4GL

  • Visual Studio 2005

  • Visual Studio 2008

  • .NET Compact Framework 3.5

我已经查看了WiXInstallShield,以及旧Wise系统的Altiris made replacement .

我没有't played with InstallShield much at all yet, but from everything I'已经看到/安装它似乎是业界的最爱之一 . 我浏览了一些与InstallShield相关的Stack Overflow标签,我很想知道小组对此有何看法 .

我是否只是默认情况下去找他们? WiX在非.NET的东西有多好?

5 回答

  • 1

    我继承了一些InstallShield(v12)项目 . 这些文件都是文本/ XML,因此没有版本控制问题 . 我们有一台使用命令行工具的构建机器,效果很好 . 我不喜欢的是(a)每个开发者席位的成本和(b)错误 .

    Inno Setup非常强大/灵活,通常有多种方法可以实现目标,这导致了陡峭的学习曲线 . 我们有几个版本落后于他们的最新版本(由于他们的升级成本结构) . 因为我们的产品在Widows上运行,如果我们必须切换,我可能会首先研究MSDN订阅附带的Microsoft安装程序解决方案 .

  • 99

    更新,2018年8月,一个新的更短的选项:如何创建Windows安装程序 . 专注于总结MSI及其主要优势,列出可用的主要工具(带有下载链接),并提及一些新的趋势部署技术 .


    我曾在大型公司中以 release managerbuild engineersetup developerapplication packagerSOE engineerdeployment engineer (SCCM)的身份从事软件开发工作 .

    在此过程中,我使用了大多数主要的打包工具(一些在许多不同的版本中): InstallShield ,Wise(不幸的是,市场上), WiXAdvanced Installer(只是测试),Orca我已经测试了some other tools(链接到“Windows”适用于开发人员的安装程序创作工具“来自http://www.installsite.org - 一个相当详尽的工具列表 . 我还使用了不太常见的打包和部署工具,如Computer Associates Unicenter - 可能现在已经上市 . Non-MSI Setup Authoring Tools上还有一个页面 .

    UPDATE :如果您发现自己需要MSI工具来比较两个MSI文件版本,或者只是从MSI文件中提取信息,您可能需要阅读以下答案:How can I compare the content of two (or more) MSI files?(专注于免费的MSI工具) .

    这篇文章概述了 the strong points of some of the different authoring tools 以及 some snags to be aware of . 尽管它们有相似之处,但这些工具实际上却完全不同 . 所有的尝试都是为了使描述尽可能客观 - 用积极和消极的方式描述现实世界的经验 .


    相关部署主题


    InstallShield

    • 功能丰富 .

    • 始终与最新技术保持同步 .

    • (安装程序)面向开发人员 .

    • 提供不同版本 .

    • 旗舰产品AdminStudio提供面向设置开发人员的工具以及面向重新打包的工具 .

    • 非常好 release managementlocalizationautomation features 用于构建过程自动化 . 至少比竞争对手好 .

    • 对于 complex products 版本管理可能是InstallShield的主要卖点 . 您可以轻松地提供各种风格:语言版本,oem版本,查看器,应用程序版本等...使用 release flags 和类似的结构 .

    • Release flags 主要用于从每个编译设置中有条件地排除或包含产品的某些部分 - 这通常是制作专业设置系列时所要求的很大一部分 .

    • The release view in Installshield允许您全面了解所有不同的设置类型和版本 . 您可以看到为Web(一个大型安装文件)或可再发行媒体(外部源文件)以及您提供的任何其他风格提供的所有 language versions 和发布设置 .

    • 每个版本都至关重要您可以根据产品名称,产品版本,产品包装,产品和升级代码以及必须根据产品版本和语言版本动态更改的许多其他必需设置进行编辑 .

    • 在许多其他产品中,这种类型的发布和版本管理可能更难实现 . 对于更简单的设置,这种灵活性可能不那么重要 .

    该产品的

    • The automation API 允许从各种类型的 build automation scripts 轻松“ remote controlled ” .

    • 还有 command line build modules (用于专用构建服务器) .

    • 使用常规VBScript / VBA / Javascript自动化,可以轻松实现整套产品和版本构建的完全自动化 .

    • Full localization supportstring tables 用于支持不同的安装语言 .

    • 基本对话框也以多种语言提供现成的(额外费用) .

    • 您只需要本地化您自己的设置内容(功能列表 Headers ,任何自定义对话框或消息框,带文本的图像等) - 仍然需要做很多工作 .

    • 您可以提供庞大的多语言设置 . 根据我对several reasons(阅读本地化部分)的经验不推荐这样做 . 最糟糕的问题是您必须本地化所有语言中的所有新内容和更改内容,然后才能提供英文版本 . 这对营销/销售来说几乎是不可接受的 . 并且总有一些修复需要您重建和重新发布单一语言,然后您希望在没有UAT和QA的情况下为所有其他语言执行此操作 . 最好为每种语言提供单独的构建(易于实现) .

    • 良好的社区支持:User Community Forums .

    • 非常好的GUI,常见的东西相当容易 .

    • 成熟的MSI-GUI编辑器 .

    • 非常强大 . 有点复杂 .

    • 底层MSI技术的GUI功能的局限性会导致一些障碍和恼人的限制,但所有部署工具都是如此 .

    • 根本原因是MSI GUI是使用MSI文件本身内部的数据表实现的,与正确的Win32对话框的完整"event model"相比,这会导致对话事件的严重限制 .

    • 全功能 C-style scripting language 用于名为“ Installscript ”的自定义操作 .

    • Installscript现在编译为native - 或者使用自己的沙箱进行模拟,不确定是哪个 . 像往常一样 no need to install a runtime .

    • 顺便说一下,由于 runtime corruption (似乎经常与DCOM相关)和不同运行时版本之间的 various incompatibilities ,这个运行时是一些相当的源 . 以下是"legacy purposes"的一些故障排除链接:

    • Unable to Install InstallShield Scripting Run Time .

    • Setup Is Unable To Find or Update ISScript.msi .

    • Flexera Consumer Central(适用于最终用户设置问题) .

    • 虽然运行时是一个非常有问题的错误来源,但现在看来所有相关的问题都是 resolved completely since Installshield 12 以后 .

    • Nicely integrated help in GUI .

    • 对于如此困难的技术非常重要 .

    • 通常非常有帮助 - 特别是对于处理常见任务 .

    • default binary file storage format 不允许真正的源代码控制或分支(与开箱即用的WiX不同) . 我认为有一种方法可以以文本格式存储项目,但我从未使用它 . 不确定它会有多有效 .

    • 毫无疑问,到目前为止,所有安装产品都是最大的 .

    • 公平地说,大多数错误都与特殊的“ Installscript MSI ”项目类型有关,该类型实现了MSI设置的自定义对话框模型(而不是基于表格的原生GUI,它被抑制) .

    • 换句话说, Installscript MSI 项目类型 MUST NOT 可在任何情况下使用 . 如果您仍然使用它们,请记住这一点 - 它们特别难以正确升级(第一次部署可能没问题,但升级正在破坏) . 其他项目类型似乎运作良好 .

    • 放弃了Installscript MSI(大多数人似乎都这么做)之后,这个工具对我个人来说非常好(虽然没有bug) .

    • 我很满意 IIS sitesCOM+ applications 的部署支持 . 我需要使用WiX _3018842的易用性 . 根本没有足够的灵活性和控制可用 .

    • Support for Microsoft App-V virtual packages 和新的虚拟化技术 .

    • 与普通应用程序相比,允许一些新功能 .

    • 应用程序流 - 机器上没有本地安装 - JIT .

    • 在同一台计算机上使用两个不兼容的软件 .

    • 通过服务器更新 .

    • 控制许可 - 最大化同时用户或将软件绑定到组/用户 .

    • 快速,轻松地向用户展示应用程序 .

    • More Microsoft marketing here .


    聪明

    Wise is officially retired ,但它之前已经复活了 . 不幸的是some legal issues这次可能已经取得了最终成绩 - 据我所知 . 对于这样一个伟大的工具来说,这将是一种耻辱 . 它被Altiris和赛门铁克收购 . 它现在似乎是off market . 我仍然留在好的Wise功能的摘要中:

    • 快速简便,功能丰富 .

    • 整体易用性非常好,功能设置非常出色 .

    • 缺乏一些(非常)高级功能,如IIS,高级版本管理等......

    • 管理员/重新打包者 .

    • 比Installshield更少关注代码 .

    • 具有独特功能且灵活的图形脚本编辑器 .

    • 精心设计的安装配置GUI .

    • 也非常适合 small development teams 寻找一种快速且相对简单的方式来部署其应用程序 .

    • 有时与最新技术(与Installshield相比)略有滞后,但相对而言"bug free" .

    • 直观的GUI,常见的东西(非常)容易 .

    • 在脚本样式编辑器中非常好地处理安装顺序配置和自定义操作 . 更多的GUI脚本,更少的编码 .

    • Rock solid ,很少有重大错误 .

    • 帮助资源和社区支持与InstallShield不相上下,但仍然很好 .

    • My tool of choice for debugging and prototyping (快速,稳定,易于使用,极好的差异功能) .

    • 关于diff功能(允许两个MSI文件的二进制比较) .

    • 我尝试的其他工具没有接近Wise的不同MSI文件的二进制差异 .

    • 差异查看器的易用性和清晰度不亚于精彩 .

    • 对于企业包装而言,这些差异功能可能是工作中非常关键的一部分,因为您可以在许多不同版本中管理数百甚至数千种不同的软件包 .

    • 关于 subjective note :我最喜欢的包装工具 . 非常可靠 .

    • 该工具不再可用真是遗憾 .

    • 我们总是希望"reincarnation"(我已经看过在其他一些工具中看起来像Wise的GUI片段) .


    WiX

    • 最大的优点是 text source files . 无需将源存储为二进制文件,几乎不可能跟踪更改并进行正确的版本控制 .

    • 正确的文本来源使开发团队在 branchingversioningmerging 方面发挥了重要作用 . 这是一个巨大的飞跃(在我看来,特别是对于大公司的内部开发 - 过程复杂,周转很快,有很多开发人员) .

    • 文本源文件的需求和使用对于创建WiX工具包至关重要 . 这是一个更详细的quick and incomplete "WiX history" . 建议阅读以掌握WiX的基础和理由 .

    • 一些将安装程序存储为二进制文件的部署工具最终可能会出现二进制源会出现无法正确跟踪的神秘问题的情况 .

    • 特别是在工具更新之后,这也更新了源中的格式(无论出于何种原因) .

    • 升级通常会影响数十个表和数百条记录,因此无法有效地追踪真正的问题 .

    • 症状包括突然发生慢速构建,突然缓慢的安装速度,无法解释的编译错误,甚至总文件损坏等问题......

    • 使用WiX,您可以完全透明,并且"leanness"可用于您的来源 . 如果正确完成并且可以自动更新源,它只是更干净,更可靠,但不会导致数十个MSI表的级联更改 . 与源代码控制相结合的变化很容易被跟踪并且(希望)被理解 - 没有添加任何神秘的,未记录的内容 .

    • 尽管如此,必须注意从WiX 3升级到WiX 4源文件似乎是微不足道的 . 让's hope this is a one-time situation. I am not sure why this has happened to be honest, and I don' t获得有关它的最新信息 .

    • 也许直接从Rob Mensching的博客查看真实新闻:http://robmensching.com/blog/和Bob Arnson的博客https://www.joyofsetup.com/ . 当互联网成为可能时,直接从马的嘴里出来 - 有时候它是一个美妙的世界;-) . 有传言说他们正在做“turtles all the way down” .

    • Rock solid, very few significant bugs .

    • 对于那些长期存在,间歇性,无法解释的虫子挣扎的人其他工具,这是天赐之物 . {战争故事已删除} .

    • 甚至更好:问题实际上似乎在WiX中得到修复,有时还有社区帮助 - 适用于开源工具包 . 大多数时候,核心团队似乎都会照顾它 .

    • 非常 feature rich ,但有时难以使用 .

    • 需要时间习惯,即使你已经习惯了,事情可以"fiddly"来做对(特别是如果你没有正确使用附带的助手工具) .

    • 使用 dark.exe decompiler tool 将现有MSI文件反编译为WiX XML会有所帮助 . 这使您可以在不事先了解WiX源的情况下研究WiX源 .

    • Exceptional customizability for complex thingsIISCOM+SQL Serverpermissioningfirewall rules 等等...... "Everything"是可能的,但有时会有所涉及 .

    • WiX有效地“ extends Windows Installer " with new and much needed functionality. This is a massive benefit for everyone who previously had to "滚动他们自己的”解决方案 - 通常用于看似微不足道的事情(但仍然非常容易出错) .

    • 这些扩展的力量不容小觑 . 你可以摆脱很多自编的,复杂的自定义动作,而不是 tested solutions . 随着 proper rollback support ! (供应商设置中一个被忽视的功能 - 根据我的经验,几乎所有这些功能 - 在中止设置后导致不洁的系统状态) .

    • 我有个人使用自定义操作编写C dll以及正确的回滚支持,并且工作量惊人 - 尤其是实际回滚功能的QA .

    • 显着缺乏GUI工具和很少的好样品 - 特别是对于WiX 4 .

    • 事情似乎在改善,perhaps try this short summary .

    • 一个有趣的项目可能是IsWiX . 值得一试 .

    • WiX教程:https://github.com/iswix-llc/iswix-tutorials

    • 快速Youtube演示:https://www.youtube.com/watch?v=nnV_OU6fk8c

    • 我已经过时了,如果您有更新的信息,请帮助更新 .

    • 使用IntelliSense在Visual Studio中完全集成 .

    • 显然,对于WiX 4将支持哪些版本的Visual Studio会有一些限制 .

    • 我还没有详细信息,但您需要最新版本的Visual Studio . 我认为Rob和Bob有很好的博客文章 .

    • It's free (!) . 每个开发人员都可以构建设置 . 有人必须拥有它(!) . 真的;-) .

    • 也是Open Source .

    • "community":https://github.com/wixtoolset . 和公开的问题:https://github.com/wixtoolset/issues/issues

    • 工具包下载包括DTF( Deployment Tools Foundation ) . 用于通过自动化处理所有MSI文件的.NET类 . 见sample inline here . 非常有用和优质 . 没有COM互操作来处理 . 见this serverfault.com post . 并Chris Painter's blog .

    • How do you get started?(直接链接到一个受到好评的答案 - 令我惊讶) .

    • 对于 sample based tinkerers try this The Code Project article,可快速了解如何使用WiX(WiX 3)创建MSI文件 . 它非常简单(如果你知道MSI它是不言而喻的) .

    • 您还可以阅读this WiX Stack Overflow article以获取更多快速入门提示 .

    • NEW & RECOMMENDED :stackoverflow答案,显示在Visual Studio中创建新的WiX项目时编译工作MSI文件所需的当前最小更改:WiX installer msi not installing the Winform app created with Visual Studio 2017 .

    • 您可以使用WiX的dark.exe(MSI反编译器)将现有的MSI文件反编译为正确的WiX XML格式,然后研究它如何组合在一起 . 非常有用和教育 - 特别是对于高级功能 .

    • 当前和未来版本 .

    • Version 3.1 稳定并退出(2017年5月发布) . Rock solid .

    • Version 4 此时已经发展了8年(2017年8月) .

    • 目前尚不清楚它何时可用于稳定释放 .

    • 显然是 very major update 需要对现有WiX文件进行大量返工才能成功使用 .

    • 我无法提供有关此时主要差异的详细信息 .

    • 毫无疑问,版本3的稳定性和可靠性得以保留 .


    高级安装程序

    • 我没有用它来进行真正的开发 .

    • 非常好用,非常好的GUI .

    • UPDATE

    • 在开发测试安装期间,工具本身非常好 integrated logging . 非常令人印象深刻 .

    • 也可用于 corporate repackaging 的“ Architect edition ” .

    • Feature rich . 编译各种设置并支持所有新技术(App-X,App-V等......)

    • App-V 的支持似乎非常广泛 .

    • 可以 import 许多其他工具的源文件(Installshield,Inno,Wix,Wise,NSIS,Visual工作室,桌面桥等...) . 没有经过我的广泛测试 .

    • 就我所见,以专有文本格式存储项目 .

    • 看起来很稳固,至关重要 hides some MSI complexity via a good GUI ,它显示了直观的复选框和选项,而不是SDK样式标志和属性 . 这是一件好事,此时完全没有从WiX中消失 .

    • 看起来它可能适用于原型设计和测试,非常强大的GUI和 automagic 用于常用功能 .

    • 我怀念InstallShield的Release视图及其发布标志和构建自动化设置以及其他版本管理功能(现在可以改进) .

    • 整体 solid tool 看起来 best suited for developers looking for an easy way to get their applications deployed . 在这方面类似于智者 .

    • 编写更多的实践经验太少 . 试试看 .


    其他工具

    • Orca 是免费的Windows SDK工具,它允许打开,编辑二维MSI文件并在一定程度上进行比较 . 它还允许其他操作,例如生成用于修改MSI文件的转换文件和一些其他技术操作 . 我一直喜欢安装和使用的基本工具 . 有一个more extensive Orca paragraph here讨论它的用途(向下看) . 您通常必须安装Windows SDK才能获得Orca(只需安装最新版本并搜索该工具) .

    • 一个名为“Super Orca " has been recommended to me, as has " InstEd”的免费工具 . 我只是简单地使用它们,但看起来还不错,它们比Orca更容易掌握(没有Windows SDK下载) .

    • 还有很多 other tools . 以下是来自http://www.installsite.org的工具列表,其中显示该工具是否仍在维护中: http://www.installsite.org/pages/en/msi/authoring.htm (感谢 Phil Wilson 的链接 - 我无法复活他的答案) .

    • 我想我还可以包含一个指向wikipedia's list of installation software的链接 .


    工具建议?

    我不能直接提出工具建议 . 但我想我可以做一些“观察”并为决策提供一些进一步的链接 .

    For any serious in-house development team I would suggest WiX. 其他工具易于使用(这非常重要,有时候唯一重要的事情),WiX在灵活性,可扩展性,稳定性和 XML text source files 的使用方面表现优异 - 并且有一定的参与处罚 . 由于其免费许可证,每个开发人员都可以查看和编译源代码,并且可以轻松跟踪,还原或批准更改 . 管理开发人员所有更新单个WiX源的流程仍然存在挑战(与常规开发工作没有什么不同 - 没有什么是容易的) .

    对于 corporate repackaging (这无疑是有点超出了stackoverflow.com的开发人员关注点)我想目前的主要选项是 Flexera AdminStudioAdvanced Installer Architect . 还有其他产品可用,并且一如既往installsite.org有详细信息:Tools: Repackaging & Corporate Deployment .

    对于 small development teams 寻找一种快速简便的方式来部署他们的应用程序,我猜 InstallshieldAdvanced Installer 是最常见的"GUI based"工具 . 它们提供了许多功能,您可以快速提供设置 . 如前所述,有时这是唯一重要的事情 . 实际上经常是这样 . 但是,可以使用 WiX 来提供一个出色的安装程序 - 但需要更多的知识 . 有一个学习曲线,有一些严重的限制 - 特别是关于目前的GUI - 但基础技术非常扎实和自由 . 而且重要的是 many other tools (来自http://www.installsite.org的列表)也可能更适合您的任务 - 特别是如果它是一个只需要基本部署功能的简单应用程序 . 我没有提供有关这些工具的更多信息,这些工具非常强大,但不太常用或不太常用 .

    我应该明确表示我推荐使用WiX for corporate teams delivering in-house applications 因为他们可以使用WiX提供的灵活性,他们也将使用 available expertise and technical skill 来处理WiX的复杂性 . 他们可以在需要时培训新人 . 一个非常重要的问题 . 除非你已经掌握了很多Windows安装程序的知识,否则WiX并不是一件容易的事情 - 但它仍然是一块蛋糕,但仍然需要时间,因为它非常灵活,缺乏一个更好的词:"fiddly" - 它就像真正的开发,你有真正的控制但需要精确 . 一旦设置好WiX源就可以成为一个梦想 - 你知道发生了什么 .

    总结一下:如果你是一个小的(或大的) third party vendor 寻找一个将应用程序快速交付给客户的好方法 you are probably better off with a commercial tool 旨在提供易用性和快速解决方案,以实现有限的更改 . 特别是对于IIS,商业工具过去未能提供我所需的灵活性 . 内部开发团队至少应该尝试使用WiX .

    Finally a word of cautionAdvanced InstallerInstallShield 和Wise通常允许打包 virtualization 的软件 . 到目前为止,我还没有发现WiX的任何功能 . 如果您有这方面的信息,请添加评论或编辑此帖子 .


    顶级实用提示:

    如果我有选择的话,我通常会使用 prototyping 和WiX的其他工具来实现 . 您可以使用WiX的 dark.exe (MSI反编译器)来反编译现有的MSI文件 . 有时我在Wise或InstallShield中实现某些东西,编译MSI并将其反编译为WiX格式 . 然后我解除WiX标记并转储到我的主WiX文件中 . 效果很好,通常非常快 . 这与用于自动组件创建的 heat.exe 工具相结合,使我能够在一些练习运行后的不到10分钟内打包一个巨大的IIS网站 . 之后我拥有WiX提供的完全可定制性,并且易于使用其他工具 .

    清理反编译来源不是野餐,但它也不是火箭科学 . 需要一些MSI知识,你将会“摆弄”一段时间 . 请注意,不建议下载商业工具的试用版以生成和反编译MSI文件 . 生成的MSI文件通常是“加水印”的,具有难以删除的功能 .


    Some Links

  • 18

    WiX在非.NET的东西有多好?

    WiX通过设计支持所有Windows Installer功能 . Windows安装程序早于.NET .

    就个人而言,我更喜欢WiX而不是InstallShield

    • XML文本格式允许分支之间的更改 review of commits, merging

    • build automation 应该包括设置生成,这对于WiX很容易
      具有组件组定义的

    • wixlib文件允许 modular setup development . 无需担心依赖项的依赖性等 .

    • 没有许可或部署问题,我们只需将WiX工具集包含在我们项目的/ tools文件夹中SVN

    当我们使用InstallShield时,这些都是痛点 . 尽管如此,WiX确实有一个非常陡峭的学习曲线 .

  • 9

    你应该看看免费软件Inno Setup:很长一段时间我都在使用它,它永远不会让我失望!

  • 5

    我在几年内没有使用过InstallShield . 在我上一份工作中,我们从它转移到NSIS主要是因为它的二进制格式使版本控制变得困难,并且因为源文件几次简单地被破坏,没有恢复的希望 . 那可能与SourceSafe有关!

    最重要的是,这是不必要的复杂 . 不要误解我的意思 - 我们正在做一些相当复杂的安装程序,有很多条件路径,合并模块和复杂的UI,但即便如此,它也太复杂了 .

    NSIS有一个很棒的插件系统,您可以使用LogicLib plugin进行必要的编程,生成automatic uninstall files,还有很多其他的东西 .

相关问题