使用什么安装产品?InstallShield,WiX,Wise,Advanced Installer等

Mat*_*sky 56 installer windows-installer installshield wix advanced-installer

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

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

  • 进步4GL
  • Visual Studio 2005
  • Visual Studio 2008
  • .NET Compact Framework 3.5

我已经看过WiXInstallShield,Altiris还替换了旧的Wise系统.

我还没有玩过很多关于InstallShield的东西,但是从我见过/安装过的所有东西来看,它似乎都是业界的最爱之一.我浏览了一些与InstallShield相关的Stack Overflow标签,我很想知道该组织对此有何看法.

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

Ste*_*mul 113

更新,2018年8月,一个新的更短的选项:如何创建Windows安装程序.专注于总结MSI and its major benefits和列出major tools available(带下载链接),以及mentioning some new, trending deployment technologies.


我曾在大型企业担任过发布经理,构建工程师,安装开发人员以及作为应用程序包装程序,SOE工程师部署工程师(SCCM)的软件开发人员.

在此过程中,我使用了大多数主要的打包工具(有些包含许多不同的版本):InstallShield,明智的(不幸的是,市场上),WiX,高级安装程序(只是测试),Orca和我测试了一些其他工具(链接到http://www.installsite.org的"Windows Installer创作工具 " - 一个相当详尽的列表的工具).我还使用了不太常见的打包和部署工具,例如Computer Associates Unicenter--现在可能已经上市.非MSI设置创作工具上还有一个页面.

更新:如果您发现自己需要一个用于比较两个MSI文件版本的MSI工具,或者只是从MSI文件中提取信息,您可能希望阅读以下答案:如何比较两个(或更多)MSI的内容文件?(专注于免费的MSI工具).

这篇文章概述了一些不同的创作工具的优点以及一些需要注意的障碍.尽管它们有相似之处,但这些工具实际上却完全不同.所有的尝试都是为了使描述尽可能客观 - 用积极和消极的方式描述现实世界的经验.


相关部署主题

  • 在深入研究不同工具之前,这里有一些其他链接,其中包含有关MSI技术本身的信息.
  • 以下是部署工具中常用的部署任务的一般说明,以及部署似乎变得越来越复杂的原因说明.
  • 很多人似乎认为MSI比它的价值更麻烦,有时这是可以理解的.好处是真实的 - 特别是对于企业部署,但一些问题也是如此.

的InstallShield

  • 功能丰富.
  • 始终与最新技术保持同步.
  • (设置)面向开发人员.
    • 提供不同版本.
    • 旗舰产品AdminStudio提供了面向设置开发人员的工具以及面向重新定位器的工具.
  • 非常好的发布管理,本地化自动化功能,用于构建流程自动化 至少比竞争对手好.
    • 对于复杂的产品,发布管理可能是InstallShield的主要卖点.您可以轻松地提供各种风格:语言版本,oem版本,查看器,应用程序版本等...使用发布标志和类似结构.
    • 发布标志主要用于从每个编译设置中有条件地排除或包含产品的某些部分 - 这通常是制作专业设置系列时所要求的很大一部分.
    • Installshield中的发布视图允许全面概述所有不同的安装类型和版本.您可以看到为Web(一个大型安装文件)或可再发行媒体(外部源文件)以及您提供的任何其他风格提供的所有语言版本和发布设置.
      • 至关重要的是,每个版本和版本都可以覆盖重要设置,例如产品名称,产品版本,软件包,产品和升级代码以及必须根据产品版本和语言版本动态更改的许多其他必需设置.
      • 在许多其他产品中,这种类型的发布和版本管理可能更难实现.对于更简单的设置,这种灵活性可能不那么重要.
    • 产品的自动化API允许从各种类型的构建自动化脚本轻松" 远程控制 " 它.
      • 还有命令行构建模块(用于专用构建服务器).
      • 使用常规VBScript/VBA/Javascript自动化,可以轻松实现整套产品和版本构建的完全自动化.
    • 使用字符串表完全本地化支持,用于支持不同的安装语言.
      • 基本对话框也以多种语言提供现成的(额外费用).
      • 您只需要本地化您自己的设置内容(功能列表标题,任何自定义对话框或消息框,带文本的图像等) - 仍然需要做很多工作.
      • 您可以提供庞大的多语言设置.由于以下几个原因,我不建议这样做(阅读本地化部分).最糟糕的问题是您必须本地化所有语言中的所有新内容和更改内容,然后才能提供英文版本.这对营销/销售来说几乎是不可接受的.并且总有一些修复需要您重建和重新发布单一语言,然后您希望在没有UAT和QA的情况下为所有其他语言执行此操作.最好为每种语言提供单独的构建(易于实现).
  • 良好的社区支持:用户社区论坛.
  • 非常好的GUI,常见的东西相当容易.
  • 完整的MSI-GUI编辑器.
    • 很强大.有点复杂.
    • 底层MSI技术的GUI功能的局限性会导致一些障碍和恼人的限制,但对于所有部署工具来说都是如此.
    • 根本原因是MSI GUI是使用MSI文件本身内部的数据表实现的,与正确的Win32对话框的完整"事件模型"相比,这会导致对话事件的严重限制.
  • 用于自定义操作的全功能C风格脚本语言,称为" Installscript ".
    • Installscript现在编译为native - 或者使用自己的沙箱进行模拟,不知道哪个.有没有需要安装运行时一样,你必须之前.
    • 顺便提一下,由于运行时损坏(似乎经常与DCOM相关)以及不同运行时版本之间的各种不兼容性,此运行时是一些相当棘手的部署问题的根源.以下是"遗留目的"的一些故障排除链接:
    • 虽然运行时是一个非常有问题的错误来源,但现在所有相关问题似乎已经完全解决,因为Installshield 12及更高版本.
  • 在GUI中很好地集成了帮助.
    • Very important for such a difficult technology.
    • Often very helpful - especially for dealing with common tasks.
  • The default binary file storage format allows no real source control or branching (unlike WiX which delivers this out of the box). I think there is a way to store the project in text format, but I never used it. Not sure how effective it would be.
  • Without a shadow of a doubt, by far the buggiest of all installation products.
    • In fairness most bugs relate to the special "Installscript MSI" project type that implements a custom dialog model for MSI setups (rather than the native, table based GUI which is suppressed).
    • In other words, the Installscript MSI project type MUST NOT be used under any circumstance. Please take this to heart, if you still use them - they are particularly hard to upgrade properly (first time deployment might be OK, but upgrades are breaking). Other projects types seem to work well.
    • After abandoning Installscript MSI (which most people seemed to do), the tool worked quite well for me personally (not bug free though).
  • I was not happy with the support for deployment of IIS sites and COM+ applications. I needed to go for WiX's flexibility and customizability instead of Installshield's ease of use. There was simply not enough flexibility and control available.
  • Support for Microsoft App-V virtual packages and new virtualization technologies.
    • Allows a few new things compared to a normal application.
    • Application streaming - no local installation on machines - JIT.
    • Use two incompatible software on the same computer.
    • Updating through the server.
    • Control licensing - maximum simultaneous users or tie software to a group/user.
    • Present the application quickly and easily to users.
    • More Microsoft marketing here.

Wise

Wise is officially retired, but it has been resurrected before. Unfortunately some legal issues may have made it final this time - for all I know. That would be a shame for such a great tool. It was acquired by Altiris, and then Symantec. It now appears to be off market. I am still leaving in the summary of the good Wise features:

  • Fast and easy and quite feature rich.
    • Very good ease of use overall, excellent feature set.
    • Lacking in some (very) advanced features such as IIS, advanced release management, etc...
  • Administrator/Repackager oriented.
    • Less code focused than Installshield.
    • Uniquely capable and flexible graphical scripting editor.
    • Well designed setup configuration GUI.
  • Also excellent for small development teams looking for a quick and relatively easy way to get their application deployed.
  • Sometimes lagging slightly with latest technologies (compared to Installshield), but comparatively "bug free".
  • Intuitive GUI, common things are (very) easy.
  • Very nice handling of installation sequence configuration and custom actions in a script style editor. More GUI scripting, less coding.
  • Rock solid, very few significant bugs.
  • Help resources and community support not on par with InstallShield, but still good.
  • My tool of choice for debugging and prototyping (fast, stable, easy to use, great diff features).
  • And with regards to the diff features (allowing binary comparison of two MSI files).
    • No other tool I have tried has come close to Wise for binary diffs of different MSI files.
    • The ease-of-use and clarity of the diff viewer was no less than fantastic.
    • For corporate packaging such diff-features can be a very critical part of the job as you have hundreds or even thousands of different software packages to manage in many different versions.
  • On a subjective note: my favorite packaging tool. Very reliable.
    • It is a real shame that the tool is no longer available.
    • We can always hope for a "reincarnation" (I have seen GUI snippets that look like Wise in some other tools).

WiX

  • The big plus is the text source files. There is no need to store the source as a binary where it is almost impossible to track changes and do proper version control.
    • Proper text sources make all the difference for development teams in terms of branching, versioning and merging. It is a quantum leap (in my opinion particularly for in-house development in large corporations - where process is complex, turnaround is quick and there are many developers).
    • The need for and use of text source files was central to the creation of the WiX toolkit. Here is a quick and incomplete "WiX history" with more details. Recommended read to grasp the foundation and rationale for WiX.
    • Some deployment tools that store the installer as binaries could end up in situations where the binary source would exhibit mysterious problems that could never be tracked down properly.
      • This happened particularly after tool updates which also updated the format in the source (for whatever reason).
      • The upgrades would often affect dozens of tables and hundreds of records making it an impossible task to track down the real problem effectively.
      • Symptoms included things such as the sudden onset of slow builds, sudden slow installation speed, unexplainable compilation errors, even total file corruption etc...
      • With WiX you have full transparency and "leanness" for your source. It is just cleaner and more reliable when done right and automatic updates of the source is possible, but won't cause cascading changes through dozens of MSI tables. Combined with source control changes are easily tracked and (hopefully) understood - no mysterious, undocumented stuff added.
      • With all that said it must be noted that upgrading from WiX 3 to WiX 4 source files appears to not be trivial. Let's hope this is a one-time situation. I am not sure why this has happened to be honest, and I don't have up to date information about it.
      • Perhaps check for real news straight from Rob Mensching's blog: http://robmensching.com/blog/ and Bob Arnson's blog https://www.joyofsetup.com/. Straight from the horse's mouth as the Internet makes possible - it is a wonderful world at times ;-). Rumor has it they are doing "turtles all the way down".
  • Rock solid, very few significant bugs.
    • For those who have struggled with long-standing, intermittent, unexplainable bugs in other tools, this is a godsend. {War stories removed}.
    • And even better: problems actually seem to get fixed in WiX, sometimes with community help - as is appropriate for an open source toolkit. Most of the time it seems the core team takes care of it though.
  • Very feature rich, but somewhat hard to use at times.
    • Takes time to get used to, and even when you are used to it things can be "fiddly" to get right (particularly if you don't use the included helper tools properly).
    • It helps to use the dark.exe decompiler tool to decompile existing MSI files to WiX XML. This allows you to study the WiX source without knowing too much about it beforehand.
    • Exceptional customizability for complex things such as IIS, COM+, SQL Server, permissioning, firewall rules, etc... "Everything" is possible, but somewhat involved at times.
    • WiX effectively "extends Windows Installer" with new and much needed functionality. This is a massive benefit for everyone who previously had to "roll their own" solutions - often for things that seemed trivial (but was still very error prone).
    • The power of these extensions can not be overstated. You can get rid of a lot of self-written, complex custom actions in favor of tested solutions. With proper rollback support! (a much neglected feature in vendor setups - in my experience almost all of them - causing unclean system state after aborted setups).
    • I have personal experience writing a C++ dll with custom actions for common tasks with proper rollback support, and the amount of work was staggering - especially the QA of the actual rollback feature.
  • A remarkable lack of GUI tools and very few good samples available - particularly for WiX 4.
  • Full integration in Visual Studio, with IntelliSense.
    • Apparently there will be some restrictions as to what versions of Visual Studio will be supported by WiX 4.
    • I don't have the details yet, but you will need a recent version of Visual Studio. I think there are good blog entries from Rob and Bob about this.
  • It's free (!). Every developer can build the setup. Someone must own it though(!). Really ;-).
  • It is Open Source too.
  • How do you get started? (direct link to an answer that has been well-received - to my surprise).
  • Current and future versions.
    • Version 3.1 is stable and out (Released May 2017). Rock solid.
    • Version 4 has been eight years in development at this point (August 2017).
      • It is not clear when it will be available for stable release.
      • It will apparently be a very major update that requires substantial rework to existing WiX files to use successfully.
      • I can not provide any details on what the major differences are at this point.
      • The stability and reliability of ve

        • 阅读完这篇文章之后,我们选择了Advanced Installer.我们没有时间学习WiX,但我们确实有钱,并且专业版的Advanced Installer让我们在大约两个小时内运行起来.WiX看起来需要几天的阅读时间,而且AI向导和配置非常流畅.(我根本没有隶属关系,我只有很棒的经历.) (10认同)
        • +1 - 很棒的故障.我们现在正在努力寻找WiX,特别是如果使用WixSharp将有助于简化我们对它的使用并帮助我们摆脱手动编辑XML. (2认同)

Wim*_*nen 18

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

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

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

  • XML文本格式允许查看提交,合并分支之间的更改
  • 构建自动化应包括设置生成,这对于WiX来说很容易
  • 具有组件组定义的wixlib文件允许进行模块化设置开发.无需担心依赖项的依赖性等.
  • 没有许可或部署问题,我们只需将WiX工具集包含在SVN项目的/ tools文件夹中

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

  • +1 - 很棒的回应.感谢您的见解.关于审查和合并的好点.我们使用现有的.wse(Wise)脚本来解决这个问题. (2认同)

kiw*_*ixz 14

你应该看看免费软件Inno Setup:很长一段时间我都在使用它,它从来没有让我失望!


RB.*_*RB. 5

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

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

NSIS有一个很棒的插件系统,你可以使用LogicLib插件强制编程,生成自动卸载文件,还有很多其他的东西.


归档时间:

查看次数:

35077 次

最近记录:

6 年,4 月 前