我只是想知道为什么我们需要安装程序来创建设置? 我们可以创建一个桌面应用程序,它将进行注册表更改,程序集注册,配置文件的创建以及所有。
为什么有专门的安装人员?它们是否满足桌面应用程序无法执行的任何其他目的或任务?
答案 0 :(得分:3)
原则上,您可以滚动自己的安装程序,尤其是在用户手动下载您的应用程序时。但是,您将缺少安装程序通常提供的一些好处:
自动删除 - 安装期间添加的所有更改都可以在卸载期间自动撤消
提升权限 - 某些安装系统可以使用提升的权限运行,并且可以在安装时执行管理任务,安装软件的用户通常无法执行
重新安装 - 如果您的任何程序文件被删除或损坏,安装程序可以重新安装这些文件。
无提示安装 - 在没有用户界面的情况下安装产品,有时无需用户启动安装(例如,在机器启动或用户登录时发生。)
部署,组配置:对于大型部署,可以同时将安装包部署到许多用户,并可以管理升级。
打包 - 通常通常将所有文件打包在一个包中,通常是压缩的,然后在安装时解压缩。该软件包也可以进行数字签名以进行身份验证。
您可以在应用中提供部分或全部内容,但是您将重新设计许多已经免费提供的代码。例如,参见AdvancedInstaller,它为Windows生成MSI文件(可用免费版本。)
或者,有WiX toolset用于从XML desciption生成MSI。
答案 1 :(得分:2)
Overview of the Windows Installer Technology
如果您为企业环境编写自己的因素,则必须考虑大量因素。
答案 2 :(得分:0)
一个原因是某些操作可能需要在计算机上拥有管理员权限,因此只需要为安装程序请求管理员权限比自己的应用程序更容易,更安全。
另一个原因是,如果你想安装一个数据库或类似的其他只需要一次的复杂设置,为什么要使用第一次只使用它的代码污染应用程序的代码库,更容易将它分开。
答案 3 :(得分:0)
您 可以 通过编写您自己的可执行文件来完成安装应用程序所需的一切。但为什么?您可以在Visual Studio中创建的安装程序在编写自己的自定义操作方面非常灵活,但它们也确保在Windows上安装应用程序可以满足所有要求。它还提供回滚和卸载机制。
通过自己编写,除非有特定的理由,否则你将使用大锤来破解坚果;你可能也会错过的东西。我总是觉得使用MSI安装软件会更舒服。
答案 4 :(得分:0)
对我来说,关于分离关注点。您的应用程序已经具有构建的大量功能,为什么通过填充安装逻辑使其变得更加复杂。它是一个更清洁,更IMO更好的做法,创建一个单独的安装程序应用程序来处理事情的结束。