安装程序 vs 桌面应用程序

3

我在想为什么我们需要安装程序来创建安装包呢?我们可以创建一个桌面应用程序,它可以进行注册表更改、程序集注册、配置文件的创建等。

那么,专用的安装程序有什么其他作用或任务,是桌面应用程序无法完成的吗?


这个自定义安装程序很可能需要一个安装程序 :) - Hans Passant
5个回答

3
原则上,如果您的应用程序是由用户手动下载的,您可以自己制作安装程序。但是,您将会失去一些安装程序通常提供的好处,包括:
  1. 自动卸载 - 安装期间添加的所有更改都可以在卸载期间自动撤消

  2. 提升的权限 - 一些安装系统可以以提升的权限运行,并可以执行用户普通情况下无法执行的管理任务

  3. 重新安装 - 如果您的程序文件中有任何被删除或损坏的文件,安装程序可以重新安装这些文件。

  4. 静默安装 - 产品的安装过程不需要用户界面,并且有时不需要用户启动安装(例如,在机器启动或用户登录时自动发生)。

  5. 部署和组配置:对于大规模部署,安装包可以同时部署给多个用户,并且可以管理升级。

  6. 打包 - 通常将所有文件打包到一个单独的包中,通常是压缩的,然后在安装时解压缩。该软件包还可以进行数字签名以进行身份验证。

您可以在应用程序中提供其中的一些或全部功能,但这将需要您重新设计许多已经免费提供的代码。例如,可以使用 AdvancedInstaller 来为 Windows 生成 MSI 文件(提供免费版)。
另外,还有一个 WiX 工具集 可以从 XML 描述中生成 MSI。

2

0

原因之一是某些操作可能需要机器上的管理权限,因此更容易和安全的方法是仅需请求安装程序的管理员权限,而不是应用程序本身。

另一个原因是,如果您想安装数据库或类似的其他复杂设置,这只需要一次,为什么要在应用程序的代码库中添加它只在第一次使用的代码,将其保持单独会更容易。


0

你可以通过编写自己的可执行文件来完成安装应用程序所需的一切。但是为什么呢?在Visual Studio中创建的安装程序非常灵活,可以编写自己的自定义操作,还可以确保在Windows上安装应用程序时覆盖所有内容。它还提供了回滚和卸载机制。

除非有特定原因,否则编写自己的安装程序就像用大锤敲开螺母一样笨重;而且你可能会错过一些东西。我总是觉得使用MSI更加舒适地安装软件。


0
对我来说,这是关于责任分离的问题。您的应用程序已经具备了大量的功能,为此而构建,为什么要通过塞入安装逻辑来使其变得更加复杂呢?创建一个单独的安装程序应用程序来处理这些事情会更加清晰,也是我认为更好的做法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接