我或多或少只是一个业余爱好者程序员,并且在.NET ClickOnce世界中已经成长为编码方式。
当一个“安装”程序时,实际发生了什么?!
另外:一些小应用程序/工具只是从exe运行。为什么大多数程序需要花哨的安装过程?有什么优点,缺点,优点和缺点利弊?安装通常是必要的还是更像标准做法?
为额外问题道歉。我只是希望普通英语或多或少的外行人对关键因素的解释。
答案 0 :(得分:30)
您真正关注的是许多遗留原因,这些原因都融入了Windows世界的标准做法。
首先,一些对比,因为它并不总是这样。 Mac OS X中的“应用程序”只是一个内部具有特定结构的目录,以.app
扩展名命名。安装应用程序就像将它(只是应用程序图标)拖到“应用程序”文件夹一样简单,卸载涉及将其拖到垃圾箱。就是这样,通常不需要花哨的安装程序。
在Windows上,应用程序通常由需要“注册”的独立组件构建。这涉及安装程序将一些零碎的部分写入Windows注册表,以告知Windows在哪里可以找到组件。是的,应用程序可能应该知道在哪里找到它们(因为它们都安装在同一个地方),但是多年的遗留和不同的连接组件方式使我们处于今天的状态。
通常,Windows上的安装程序:
答案 1 :(得分:14)
程序尝试以这样的方式修改计算机,使其运行并且所有竞争产品都失败。在Windows上,这意味着:
一项重要任务是安装失败并打印错误:“安装失败。这可能是因为安装了防病毒软件。请将其停用并重试。”这将确保用户开始不信任他们的防病毒软件(特别是在第二次运行期间安装成功,因为安装程序中的模糊错误没有被触发)并且他们中的很多人将忘记再次启用病毒扫描程序或甚至卸掉该死的东西。
世界各地的病毒作者也是人!垃圾邮件弥补了互联网上的大部分流量,这必然意味着它是重要的,谁不想成为世界上最大的社区的一部分?最重要的是,你可以通过这种方式赚大钱。所有你需要的是一种软弱的良心和/或一些犯罪能量。
安装程序的一个非常重要的部分是增加注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-7-9-23-64738-1349283462-3754093625-4491\IsYourWindowWideEnough\NotGivenUpYetHuh\GoAway\ImportantSystemInformation\Let See How You Can Handle Spaces\DamnIGottaStopSincePathsCanHaveOnl\ReinstalCtr
这个重要的系统计数器将有助于为用户创造不稳定的错觉,直到他们感到强烈要求重新安装整个系统。这将有助于专业IT行业销售支持时间,销售新计算机,更多RAM,更大的硬盘或新的Windows版本(他们必须更好,对吧?)。
注意:如果您认真对待本文,请寻求专业帮助。
答案 2 :(得分:2)
使用“花哨”安装过程的原因
大多数安装中的“标准”选项将是“通常需要的所有位,在标准位置,如Program Files”安装,无需自定义,可能没有启用某些专家级功能。
答案 3 :(得分:1)
取决于您正在安装的程序。 “安装”的范围可以从简单地将(相对较小的)可执行文件复制到目录,设置共享库,进行补丁级别检查(我的设计是在SP2或更高版本上运行 - 我是否有SP2或更高版本?)并更改系统配置,适用于当前用户或所有用户。他们中的大多数还使用包管理器注册安装,以便您以后可以轻松卸载。
答案 4 :(得分:1)
Wikipedia tells us典型安装程序创建或修改以下内容:
因此,如果您的程序需要一个或多个这些修改,您应该创建一个执行该任务的安装程序。
答案 5 :(得分:1)
安装程序通过方便,自给自足的用户界面抽象部署复杂的软件基础架构的过程,该过程通常包含在存档中。
此UI可以是图形的,也可以基于在命令行上输出的文本,例如unix shell(例如bash)。对于图形安装程序,通常使用所谓的安装 - 引导程序,在后一种情况下,安装脚本可以是bash脚本,Microsoft批处理脚本或其他任何在命令行上运行的脚本语言。
在最简单的情况下,应用程序只是一个可执行文件,操作系统知道如何处理该文件以便运行它。应用程序文件可能位于包含子文件夹和其他辅助文件的文件夹中,打包到一个存档。在这种情况下,可能不需要安装程序。
对于复杂软件,可能需要整个软件平台和与底层操作系统基础架构的紧密集成,例如强制执行软件产品的版权。
Windows上的许多安装程序都提供/e
或/extract
标记。例如setup.exe /e
允许在不安装程序运行其安装脚本的情况下提取存档的内容。
我最近需要做that。
心态转变
无论底层软件资产多么简单,安装人员几乎都成为提供专业软件的常态。随着越来越多精通计算机的用户以及将应用程序从一个桌面迁移到另一个桌面的愿望,便携式软件(通常以简单的存档形式提供)正变得越来越流行。
(我不知道我在安装程序上花了多少时间,但肯定是几天了。)
安装程序可以处理的任务是:
PS:如果你能想到其他要点,请告诉我,我会加入它们。