【问题标题】:Installations in Windows 7Windows 7 中的安装
【发布时间】:2011-07-13 23:57:15
【问题描述】:

我必须迁移我们当前的软件安装才能在 Windows 7 中安装。

它是 Visual C++ 中的 MFC 应用程序。安装不是特别复杂,但确实有一些复杂性。它必须检测之前是否安装了其他软件以启动 msi 文件,如果没有,则让用户安装它。有一些合并模块和嵌套的 msi,一些自定义操作(在 dll、vbscript 等中)。我们的要求之一是非管理员用户必须能够安装该软件。并且最好在安装启动后无需同意任何消息。

我认为现在完成的方式有点混乱,我不仅希望迁移,还希望进行重构以使事情变得更好。所以我想要一些建议,一个有最佳实践的网站,一些书籍(最好是最新的关于 Windows 7 安装的特定信息的东西)。任何形式的帮助将不胜感激。

顺便说一句,我们现在正在使用 InstallShield,但如果有更好的工具,我不介意更换。

有没有人为 Visual Studio 2010 使用 InstallShield LE?值得一试吗?

谢谢,

哈维尔

【问题讨论】:

    标签: windows-7 installation windows-installer installshield


    【解决方案1】:

    NSIS 安装程序有很多功能,包括你提到的。

    【讨论】:

    • 谢谢你。但我更多的是寻找具有最佳实践和 Windows 7 安装的书籍/文章。如果你推荐这个工具,请告诉我你为什么认为它比 InstallShield 更好。
    • 嗯,在我看来它有两个主要优点:安装程序体积小(开销约为 100kb),installshield 包的大小通常为几 MB,它是可编写脚本的,并且有许多常用的插件,你可以检查机器上是否安装了.net framework、java等;您还可以按照自己喜欢的方式设置安装程序界面的样式。
    【解决方案2】:

    我认为没有一本书只涉及 Windows 7 的安装。虽然有关于如何编写安装程序的文章。

    最好以Microsoft User Experience Guidelines for Setup开头:

    用户不喜欢安装软件,因此现代安装体验需要简单、高效且无问题。

    如果你只做三件事……

    1. 使设置尽可能简单和轻便。请记住,用户不喜欢设置,他们会忍受。仔细查看每个问题、选项、页面和路径,并去掉对完成设置不重要的所有内容。
    2. 设计适用于所有设置方案,包括无人值守安装、脚本安装和卸载。为实现高效的无人值守安装,请确保设置阶段之间有清晰的分隔。
    3. 设计您的安装程序,以便用户可以自行解决安装问题,同时记录技术支持所需的信息以防万一。请记住,设置是所有用户必须成功完成的一项任务。

    First Experience 的指南,这是应用程序的第一个,也值得一读。
    一篇较早的文章Redesign Your Application's Installer 谈到了分离每个用户和每台机器的可执行文件和数据,关于共享组件等。


    在您的情况下,由于安装程序需要检测并安装缺少的其他组件,因此最好使用安装程序引导程序。

    你有两个选择:

    1. 使用引导程序提升,然后运行提升的完整设置。
    2. 仅当您需要安装附加组件、应用程序的先决条件时才进行升级。

    仅当您的应用程序可由标准用户安装时才适用第二个选项,即按用户安装,而不是按机器所有用户。在这种情况下,如果附加组件需要提升才能安装,并且其中至少有一个未安装,您可以启动提升过程来安装所有必备组件。完成后,您将继续以标准用户身份安装应用程序。

    关键是只显示一次 UAC 确认:如果每个先决条件都显示自己的 UAC 确认,那真的很烦人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 2018-07-04
      • 2016-03-03
      相关资源
      最近更新 更多