任何人都可以列出在Windows上以编程方式安装应用程序所需的步骤.除了复制他们需要的文件之外,还需要执行哪些额外步骤,以便您的应用程序成为Windows中的一等公民(即显示在程序列表中,卸载列表等等).
我试着谷歌这个,但没有运气.
顺便说一句:这是针对一个非托管的c ++应用程序(在Qt中开发),所以如果我不需要,我宁愿不涉及.net框架.
我强烈推荐NSIS.开源,非常活跃的开发,很难匹配/超越其可扩展性.
要将程序添加到"添加/删除程序"(或"程序和功能")列表,请添加以下注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAM_NAME] "DisplayName"="PROGRAM_NAME" "Publisher"="COMPANY_NAME" "UninstallString"="PATH_TO_UNINSTALL_PROGRAM" "DisplayIcon"="PATH_TO_ICON_FILE" "DisplayVersion"="VERSION" "InstallLocation"="PATH_TO_INSTALLATION_LOCATION"
我认为你在这里看到的答案的主题是你应该使用一个安装程序,你不应该自己编写安装程序.使用许多安装程序制造商之一,例如Inno Setup,InstallSheild或其他人推荐的内容.
如果你试图自己编写安装程序,你可能会做错了.这对你个人而言并不轻微.这只是安装人员应该考虑的很多小细节,以及许多可能出错的问题,如果你想自己编写安装程序,那么你只需要完成所有这些事情.这意味着你需要进行大量的研究和大量的测试.省去麻烦.
除了复制文件外,安装任务也会有很大差异,具体取决于您的程序需求.也许您需要在"开始"菜单上放置一个图标; 安装程序工具应该有一种方法可以非常轻松地实现这一点,自动填写客户在安装中先前选择的安装位置,甚至可以为快捷方式的标签选择正确的本地语言.
您可能需要创建注册表项,例如文件关联或许可.您的安装程序工具应该已经有一种简单的方法来指定要创建或修改的键和值.
您可能需要注册COM服务器.这是一个很常见的操作,安装程序工具可能会将其指定为文件后复制操作的一部分.
如果您选择的安装程序工具尚未提供某些操作,则该工具可能会提供一种方法来添加自定义操作(可能通过脚本语言),或者可能通过链接您编写的DLL中包含的外部代码与您的安装程序.自定义操作可能包括从特定网站下载更新,发送电子邮件或清点已安装公司的其他产品.
安装程序工具应提供的最后几件事是将升级应用于现有安装的方法,以及卸载程序的方法,撤消所有这些安装任务(删除文件,还原备份,取消注册COM服务器等).
我使用Inno Setup来打包我的C++软件.与InstallShield等重型解决方案相比,它非常简单.一切都可以包含在一个setup.exe中,而无需创建所有这些疯狂的批处理脚本等等.
请在此处查看:http://www.jrsoftware.org/isinfo.php