gpt4 book ai didi

language-agnostic - 自安装应用程序或单独的安装程序?

转载 作者:行者123 更新时间:2023-12-04 17:06:09 25 4
gpt4 key购买 nike

要在新计算机上安装应用程序,目前使用的主要方法似乎有两种:

  • 单独的安装程序:创建单独的安装程序包
    创建所有目录、文件、
    您需要的注册表项
    应用程序(即 MSI、InstallSheild 等),然后最后将您的应用程序复制到目标计算机。
  • 自行安装程序:包括所有必需的
    组件中的安装步骤
    这是您的应用程序的一部分。然后在每次运行主应用程序可执行文件时使用此组件检查并创建所需的设置。即只需运行应用程序即可安装。

  • 我使用过一些应用程序会随着时间的推移破坏其设置,并且大多数应用程序都有单独的安装程序。因此,唯一的解决方法是重新安装,有时设置甚至数据都会丢失(非常令人沮丧)。

    同样在我从事的软件项目中,单独的安装程序方法通常要求在安装程序包和实际应用程序中传播特定于应用程序的知识。然后,当进行代码/功能更改时,安装程​​序和应用程序都需要更新。它总是感觉有点太脆弱并且容易出现人为错误。

    所以我目前倾向于自我安装方法,因为安装/设置更简单更健壮,即只运行应用程序。我觉得这种自我安装的方法也会让自己成为一个更强大的应用程序。

    与应用程序设置(选项)的集成也会更加简洁,在许多情况下,同一个组件可以执行安装和设置管理。

    然而,消极的一面是,每次应用程序启动时执行这些额外的检查/步骤可能会对启动时间产生负面影响,并且操作系统集成可能比使用标准安装程序需要更多的工作。

    那么人们推荐哪种方法,为什么?

    (目前我最感兴趣的是安装桌面富客户端应用程序。)

    最佳答案

    两种方法各有利弊:

  • 拥有安装程序是安装必要系统组件(如驱动程序、库、COM 组件等)的正确方法。由于其中许多事件需要提升权限,因此管理员可以执行安装,而所有用户都可以使用该应用程序。
  • 在企业环境中,实际上可能需要可编写脚本的安装过程。
  • 没有安装程序为可移植应用程序开辟了道路。如果程序将所有内容都放在一个目录中,则可以简单地将其复制到 U 盘并在任何系统上运行。这对于您的特定类型的应用程序当然可能没有意义,但这由您决定。

  • 我不确定有关损坏设置的问题在这里是否真的很重要。如果设置损坏(为什么?) - 应用程序如何知道如何处理它? OTOH 当然也可以编写安装程序以不盲目地覆盖任何旧设置。这一切都取决于...

    编辑:您在评论中写道:

    Even portable apps require certain configuration/settings, Isn't it better to have the main app check that settings are valid/exist on each startup, and only prompt the user when needed.



    再一次,这真的取决于你的需要。有不同类型的配置设置或首选项,您必须单独决定:
  • 如果应用程序由当前用户首次运行,则每个用户的配置设置将丢失。显示缺少的消息以及如何创建它会很有帮助。例如 FlameRobin (Firebird 的数据库管理程序)当程序启动时未找到已注册的服务器和数据库时,我们会显示一条消息,以及如何注册它们。
  • UI 行为的每用户设置也将丢失,但它们有默认值。用户将获得应用程序的默认行为,然后可以在选项对话框中进行更改。由于最好尽量减少此类设置的数量,并且由于默认值应该是大多数用户期望的或在一般情况下效果最好的默认值,因此也无需在程序启动时打扰用户。
  • 某些配置可能不是每个用户,而是每个程序。这通常存储在标准用户没有写入权限的位置,因此检查并提示用户输入它并没有真正的帮助。可以做的是启动一个外部程序,向标准用户询问具有足够权限的帐户及其密码。
  • 关于language-agnostic - 自安装应用程序或单独的安装程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/498598/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com