安装程序到底能做什么?我为什么需要一个安装程序?


34

这可能是今天的菜鸟问题:

所以我写了这个游戏。

现在有一个.exe文件可以工作,一个包含我美丽的资产的文件夹以及一堆.dll文件和其他我可能不应该碰到的东西。为了运行游戏,我将全部复制到所需的计算机上,双击.exe文件并开始拍摄一些花花公子。好极了!

但是,与使用安装程序之间到底有什么区别?除了复制文件并看起来比.zip文件更专业之外,安装程序还有什么作用?尝试使游戏在其他计算机上运行时,通常会涉及很多修补/配置吗?我在所有Windows计算机上测试了我的游戏,但我的贪婪手指仍可以运行,并且效果很好。


1
例如,在XNA中,您需要XNA运行时。或使用SlimDX,您需要在游戏目录或GAC中包含SlimDX.dll。
Kikaimaru 2012年

嗯,我明白。但是,我需要的那些.dll文件(在我的情况下为sdl.dll及其仆从)已经与.exe文件位于同一目录中,并且在我复制其余文件时将它们复制。安装程序有什么不同之处?
HumanCatfood 2012年

2
@Jan最终用户不必担心放置文件或其他什么事情。这是为他们完成的事情。
Sidar 2012年

1
需要考虑的事情-您的游戏有多“大”?即它是一个小小的独立风格的exe文件,一个或两个DLL和一些图像,还是一个需要大量运行时安装的庞大东西。如果相对较小,则zip中的exe文件可能就足够了,并且可以帮助克服用户不愿意安装可能要在播放五分钟后删除的随机游戏的麻烦。
Piku 2012年

1
谈论安装程序...一个经常被忽略的东西是一个很好的卸载程序。我已经忘记了我必须多久删除一次剩余的文件和/或注册表项。当所述遗留物在重新安装游戏时引起问题时,这尤其令人气愤。
2013年

Answers:


34

通常,安装程序在那里使最终用户更轻松。它结合了以下内容:

  • 解压缩
  • 目录创建
  • 安装所需的运行时(可分发的文件,如:.Net,Visual C ++,Direct x)
  • 在OS上注册(以便以后进行干净卸载)
  • 显示精美的屏幕截图,以使播放器在游戏运行时为您做好准备。
  • 为用户提供注册游戏的机会
  • 下载游戏资产或补丁的更新
  • 将图标添加到开始菜单或桌面
  • 为各种游戏目录(临时文件夹,保存目录等)设置正确的权限
  • 只需安装就可以了,让用户可以轻松点击下一步开始玩游戏!

哦,对,我没有想到可能需要安装运行时。谢谢!
HumanCatfood 2012年

2
另外,不要忘记设置文件访问权限!除非安装程序进行了设置,否则不能保证您的游戏对其文件夹(具有savegames等)具有写权限。
没关系

10
+1大多数最终用户甚至都不愿意解压缩文件,因此安装程序应提出合理的默认安装路径并为他们“随便做”。许多最终用户不知道文件系统是什么,也不知道如何在呈现给他们的默认“文档”路径之外找到文件。坦白说,为什么他们甚至还需要知道什么呢?将安装程序视为贫民区的应用程序商店,只需单击一下即可开始播放,而已。
奥斯卡·杜夫伯恩

好吧,这确实取决于您的目标受众。
API-Beast 2012年

3
我还将在原因列表中增加一致性。通过提供安装程序,您可以确保用户获得的设置与其他用户一致,否则您将面临疯狂的事情,例如有人将游戏解压缩到其桌面并从那里运行(是的,我已经看到了这种情况)。使用一致的和已知良好的安装程序将删除一个很多的东西可以去错了,并简化故障排除的工作,当事情出问题。
Maximus Minimus

3

安装程序通过方便,自给自足的用户界面抽象化部署复杂软件基础架构的过程,该过程通常包含在存档中

此UI可以是图形的,也可以基于在命令行(如unix shell(例如bash))上输出的文本。对于图形安装程序,通常使用所谓的安装引导程序,在后一种情况下,使用安装脚本,该安装脚本可以是bash脚本,Microsoft批处理脚本或其他在命令行上运行的脚本语言。

最简单的情况下,应用程序只是可执行文件,而操作系统知道如何处理该文件才能运行它。该应用程序文件可以驻留在包含子文件夹和其他辅助文件的文件夹中,并打包到一个档案中。在这种情况下,可能不需要安装程序。

对于复杂的软件,可能需要整个软件平台以及与底层操作系统基础结构的紧密集成,例如,以加强软件产品的版权。

Windows上的许多安装程序都提供/e/extract标志。例如setup.exe /e,允许在无需安装程序运行其安装脚本的情况下提取档案的内容。最近,我需要做的只是那个

走向便携

无论基础软件资产多么简单,安装人员几乎已经成为交付专业软件的规范。随着精通计算机的用户数量的增加以及将一个应用程序从一个桌面迁移到另一个桌面的愿望,通常以简单存档形式提供的便携式软件变得越来越流行。

我不知道我总共花了多少时间在安装程序上,但这绝对是几天的时间。

安装程序可以处理的任务是:

  • 解压缩(通常使用奇特的,高压缩率的存档器)
  • 确保系统硬件要求
  • 确保足够的硬盘空间
  • 确保软件平台运行时要求(例如“可再分发产品”)
  • 检查更新的软件更新
  • 从远程存储库下载软件
  • 创建和/或更新程序文件和文件夹
  • 创建配置文件,注册表项或环境变量
  • 安装软件驱动程序,安装或卸载设备
  • 通过说明安装步骤,创建链接和快捷方式,提高日常用户的可访问性
  • 通过书签等推广自己的软件...
  • 通过在安装过程中展示软件的关键点,激励用户实际启动软件
  • 通过软件捆绑创造更多收入
  • 配置内核模块并自动运行组件(例如,守护程序,Windows服务)
  • 软件自动修补
  • 设置文件夹,文件和用户权限
  • 创建GUID将软件耦合到特定的安装实例,例如防止可移植性

...如果您能想到其他要点,请告诉我,我将予以合并。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.