程序安装的好处和真正目的是什么? [英] What is the benefit and real purpose of program installation?

查看:168
本文介绍了程序安装的好处和真正目的是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

到目前为止,我写的所有程序,如果我想要在另一个工作站上工作,我只需要复制和粘贴可执行文件和运行所需的文件(例如:.o文件,二进制文件。 。)。



但是所有用于商业用途的程序总是带有安装程序。例如PC游戏。所以我的问题是:当我们只是简单地将文件复制到目标工作站时,安装的主要好处/原因是什么?



- 原因之一可能是为了防止盗版。

解决方案

部署的复杂性



只有最简单的应用程序可以使用简单的文件副本,即使这样,您还需要一种方便的方法来实际下载文件的复制复制到正确的位置 - 这是一个设置。该设置也是一种营销工具,可用于跨产品的品牌建立一致性,以及允许安装试用版的产品 - 销售软件的一个非常重要的部分。



最后,一个设置为新版本提供升级和修补功能以及当用户要删除您的软件时卸载和清除系统。良好的设置也可以使用数字证书进行签名,以确保文件不会在传输中受到阻碍,并且供应商是可认证的,因此是严重的。所有这些对于严重的产品至关重要。



请务必记住,设置体验是用户首次遇到的与您的产品的质量如果安装失败,则根本无法评估产品。这似乎是在软件开发中产生的最昂贵的错误



/ strong>,在这种意义上,一旦你有一个部署错误,你通常没有访问有问题的机器进行调试 - 修复可以很容易地造成更多的伤害。 您正在管理递送流程,而不仅仅是调试代码和二进制文件。每次投放都会增加风险复杂性,很快,如果您不小心,您就无法维持自己的手。此外,您的设置运行的所有计算机几乎肯定处于与另一台计算机完全不同的状态。



部署(设置)因此是迁移的复杂过程任何计算机从一个稳定状态到另一个稳定状态。这需要一种严格的方法。 设置应安装所有必需的文件和设置,并确保产品配置为首次启动,或在启动时可以进行配置,而不会失败。这可能是一个非常复杂的任务。设置可能需要做的列表始终增长,对于每个新版本的Windows,它似乎新的障碍更难部署。此类障碍包括终端服务器上的 UAC提示自我修复锁定更改核心MSI缓存行为,新的文件夹重定向,虚拟化功能,新的和更改的签名功能(加密和数字证书 href =http://en.wikipedia.org/wiki/Killbit =nofollow> Active X killbits安全锁定, 64位复杂性等...列表



部署任务概述



在基本概述级别,部署必须考虑: / p>

设置基本功能




  • 检查系统是否适合安装

  • 提供适用于从用户输入所需设置的GUI

  • 扫描先决条件并安装运行时,例如游戏的 Active X ,水晶报告 VC ++ Runtimes .NET版本等...

  • 允许以静音模式进行安装



strong>添加基本资料




  • 安装文件
  • 安装 odbc 文件关联快捷键图标 li>
  • 更新和合并基于文本的文件,例如 INI文件

  • 更新应用程序和系统范围的路径设置 XML档案

  • 注册COM档案,并启用 .NET COM Interop / li>
  • 将.NET程序集安装到 GAC 并运行自定义 .NET安装程序类

  • 安装并排窗口程序集 WinSxS

  • 提供签名和认证的文件到设置文件本身)



添加高级内容


$ b b

  • 配置 IIS Apache 或其他网络服务器

  • 对数据库运行 SQL Server脚本

  • 安装 ActiveX浏览器组件 $ b
  • 配置和控制 COM +组件

  • 添加自定义事件日志,设置性能监视器

  • 安装并控制服务 >设置与移动设备的连接

  • 安装驱动程序

  • 自动更新系统应用程序

  • 安装控制面板Applet

  • ..



在传送设定时有许多其他问题,例如以不同语言针对不同经销商( OEM )的强大的>品牌推广设置,确保不同语言版本的所有必需的操作系统例如手机,掌上电脑,智能手机等...





这里是一个帖子

这里是一个帖子
,其中包含在应用程序营销和销售的更大背景下设置和部署的总体问题。回答描述用于创建安装程序的不同工具:
使用什么安装产品? InstallShield,WIX,Wise,Advanced Installer等



我通常建议开发者使用 Wix em>创建MSI文件的最佳新方法。请阅读此文章了解背景信息:
Windows Installer和创建Wix


Of all the programs I wrote so far, If I want it to work on another work station, I just have to copy and paste the executable and necessary files needed to make it run (e.g: .o files, binary files..).

But all the program built for commercial use always comes with an installer. For example PC games. So my question is: What is the main benefits/reasons of doing installation when we could just simply copy the files over to the targetted work station?

-One of the reason is probably to prevent piracy. But other than that, I'm sure there are other stronger reasons?

解决方案

The Complexity of Deployment

Only the simplest applications can work with a simple file copy, and even then you need to have a convenient way to actually download and do the copying of the files to the right location - and this is what a setup is for. The setup is also a marketing tool that can be used for branding and consistency across products as well as allowing installation of a trial version of the product - a very important part of selling software.

Finally a setup provides upgrade and patching features for new versions as well as uninstall and cleanup of the system when the user wants to remove your software. A good setup may also be signed with digital certificates to ensure the file can not be hampered with in transit, and that the vendor is certifiable and hence serious. All of these things are crucial for a serious product.

It is important to remember that the setup experience is the users first encounter with the quality of your product. If the setup fails the product can't be evaluated at all. This would seem to be the most expensive error to make in software development.

Errors in deployment are cumulative in the sense that once you have a deployed error, you generally have no access to the machine in question for debugging - and the fix could easily do more damage. You are managing a delivery process, not just debugging code and binaries. Each delivery adds risk and complexity and pretty soon you can have an impossibility to maintain on your hands if you are not careful. Furthermore all machines your setup is run on will almost certainly be in a totally different state than another computer.

Deployment (setups) is therefore the complex process of migrating any computer from one stable state to another. This requires a disciplined approach. The setup should install all required files and settings and ensure the product is configured for first launch or ready to be configured upon launch without failure. This can be a very complex task. The list of things a setup may need to do is growing all the time, and for every new versions of Windows it seems new obstacles are put in place to make deployment harder. Such obstacles include the UAC prompts, self-repair lockdown on terminal servers, changed core MSI caching behavior, new folder redirects, virtualization features, new and changed signing features with encryption and digital certificates, Active X killbits security lockdown, 64 bit complexities, etc... The list goes on.

An Overview of Deployment Tasks

At a basic overview level, deployment must account for:

Setup fundamentals

  • Check if the system is suitable for installation
  • Provide a GUI suitable for input of required settings from the user
  • Scan for prerequisites and install runtimes, such as Active X for games, crystal reports, VC++ Runtimes, .NET versions, etc...
  • Allow installation in silent mode for corporate use

Adding basic stuff

  • install files and registry settings
  • install odbc, file associations, shortcuts and icons
  • update application and system-wide path settings
  • update and merge text based files such as INI files, XML files
  • register COM files and enable .NET COM Interop if need be
  • install .NET assemblies to the GAC, and run custom .NET installer classes
  • install side-by-side windows assemblies to WinSxS
  • deliver signed and certified files (also applies to the setup file itself)

Adding advanced stuff

  • Configuration of IIS, Apache, or other web servers
  • Run SQL server scripts against databases
  • Installing ActiveX browser components (certificate based through browser)
  • Configure and control COM+ components
  • Add custom event logs, set up performance monitors, add firewall rules, and other windows extensions.
  • Install and control services
  • Set up connections to mobile devices
  • Install drivers of various kinds
  • Hooking up the application for automatic update systems
  • Install Control Panel Applets
  • and much more...

There are many additional complications when delivering a setup such as delivering setups in different languages, branding setups for different resellers (OEM), ensuring the setup works on all required operating systems in different language versions, and not to mention different embedded devices such as phones, pocket pcs, smart phones etc...

Here is a post with the overall issue of setup and deployment seen in the larger context of application marketing and sales.

Here is an answering describing diffent tools used to create installers: What installation product to use? InstallShield, WIX, Wise, Advanced Installer, etc.

I generally recommend that developers use Wix - the best new way to create MSI files. Please read this post for background information: Windows Installer and the creation of Wix.

这篇关于程序安装的好处和真正目的是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆