Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 操作方法:在windows上进行编程安装?_C++_Windows_Installation - Fatal编程技术网

C++ 操作方法:在windows上进行编程安装?

C++ 操作方法:在windows上进行编程安装?,c++,windows,installation,C++,Windows,Installation,任何人都可以列出在Windows上以编程方式安装应用程序所需的步骤。除了将文件复制到需要的位置外,还需要哪些额外步骤才能使您的应用程序成为Windows中的一等公民(即显示在程序列表、卸载列表等中) 我试着用谷歌搜索这个,但没有成功 :这是针对一个非托管C++应用程序(在QT中开发的),所以我不需要在.NET框架下参与C++。与InstallShield等重型解决方案相比,它非常简单。所有内容都可以包含在一个setup.exe中,而无需创建所有这些疯狂的批处理脚本等等 在这里查看:您已经掌握了主

任何人都可以列出在Windows上以编程方式安装应用程序所需的步骤。除了将文件复制到需要的位置外,还需要哪些额外步骤才能使您的应用程序成为Windows中的一等公民(即显示在程序列表、卸载列表等中)

我试着用谷歌搜索这个,但没有成功


:这是针对一个非托管C++应用程序(在QT中开发的),所以我不需要在.NET框架下参与C++。与InstallShield等重型解决方案相比,它非常简单。所有内容都可以包含在一个setup.exe中,而无需创建所有这些疯狂的批处理脚本等等


在这里查看:

您已经掌握了主要步骤。您遗漏的一个选项是在“开始”菜单上安装,并提供创建桌面和/或快速启动图标的选项

我鼓励您考虑使用杰里米建议的安装程序。

我强烈推荐。开源,非常活跃的开发,很难与它的可扩展性相媲美

要将您的程序添加到添加/删除程序(或程序和功能)列表,请添加以下注册表项:

[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"
innosetup的GUI(强烈推荐)是


您也可以使用内置在Visual Studio中的MSI安装程序,这是一个更陡峭的学习曲线(即痛苦),但如果您在公司环境中安装软件,它会很有用。

听起来您需要查看Windows installer系统。如果您需要详细信息,请参阅。有关新闻,请阅读安装团队的。最后,由于您是一名程序员,您可能希望像程序员一样构建安装程序。是我选择的工具-开源代码,从Microsoft到boot。首先。很好。

让您的程序显示在“开始程序”菜单中, 您需要创建一个文件夹 C:\Documents and Settings\All Users\Start Menu\Programs 并为您想要启动的程序添加了一条捷径。 (如果您希望列出您的申请表 直接在“开始”菜单或“程序”子菜单中, 你可以把你的捷径放在相应的目录中)

要以编程方式创建快捷方式,可以使用IShellLink

由于您想要卸载,这会涉及到更多问题,因为您不想在不检查依赖项的情况下简单地删除DLL或其他常见文件。 我建议使用设置/安装生成器,尤其是在Vista如此挑剔的今天,自己安装变得相当复杂 如果您需要的不仅仅是一个可执行文件和一个“开始”菜单快捷方式

我已经使用设置生成器好几年了。
(注册版本包括卸载)。

我认为您将在这里看到的答案的主题是,您应该使用安装程序,并且您不应该自己编写安装程序。使用众多安装程序制造商之一,如Inno Setup、InstallSheild或其他任何有人推荐的产品

如果您试图自己编写安装程序,可能会出错。这不是对你个人的轻蔑。只是安装程序需要考虑的很多小细节,以及很多可能出错的事情,如果你想自己写安装程序,你就必须把所有的东西都弄对。这意味着你需要做大量的研究和测试。省省麻烦吧

除了复制文件外,安装任务也会根据您的程序需要而有所不同。也许你需要在开始菜单上放一个图标;安装工具应该能够很容易地实现这一点,自动填充客户在安装之前选择的安装位置,甚至可以为快捷方式的标签选择正确的本地语言

您可能需要创建注册表项,例如文件关联或许可。您的安装工具应该已经有了一种简单的方法来指定要创建或修改的键和值

您可能需要注册一个COM服务器。这是一个非常常见的操作,您的安装工具可能有办法将其指定为post文件复制操作的一部分

如果您选择的安装程序工具尚未提供某些操作,该工具可能会提供一种添加自定义操作的方法,可以通过脚本语言,也可以通过链接安装程序附带的DLL中的外部代码。自定义操作可能包括从特定网站下载更新、发送电子邮件或清点公司已安装的其他产品


安装工具应该提供的最后几件事是将升级应用到现有安装的方法,以及卸载程序、撤消所有安装任务(删除文件、恢复备份、注销COM服务器等)的方法,确保您获得了GUI Inno工具;它使安装脚本的设置变得非常简单,并且可以运行编译器来构建安装,而无需转到命令提示符。我不知道。也许有人讨厌NSIS。也许有人认为你没有真正回答这个问题,而是只讲了一个例子。你的回答似乎总结了其余帖子的要点。谢谢!虽然您不应该使用“C:\Documents and Settings\All Users\Start Menu\Programs”,而是应该使用适当的环境变量。对,更具体地说,使用类似CSIDL_COMMON_Programs或CSIDL_Programs的内容请参见:这取决于您是以管理员身份运行,如果是以管理员身份运行,则取决于您是只进行管理员安装还是所有用户安装。但是,在编写安装程序时,第二项任务(在文件复制之后)应该是将添加/删除程序条目设置到clea