我正在使用VC ++创建一个msi安装程序,它将* .jar文件复制到指定的目标位置。 * .jar文件随msi安装程序一起提供(Duh!)。但我需要找到启动msi安装程序的位置。例如,如果我在DVD中提供整个设置,并且用户将DVD放入驱动器中,并且他的\ DVD驱动器是G:\,我需要安装程序知道它是从" G启动的:"驱动,以便它应该在G:\中查找* .jar文件。目标是使msi安装程序从任何地方启动,以便可以获得需要从中复制支持文件的必要路径。目前,msi安装程序是从* .cpp文件启动的,我已经提到了* .jar文件专门针对msi安装程序的路径(换句话说,硬编码了c ++程序中的路径)。我需要实时获取路径。我是初学者。有人可以帮助我吗?
答案 0 :(得分:0)
您的问题令人困惑,因为C ++是用于在Windows上制作程序可执行文件的语言/编译器。它没有制作MSI。
从MSI的角度来看,您需要查看SourceDir或可能的OriginalDatabase属性,以查找运行安装程序的位置。
答案 1 :(得分:0)
好。得到了我的问题的答案。我创建了两个"添加注册表搜索"在“启动条件”选项卡中。第一个属性在属性中被命名为 JREVERSION , SOFTWARE \ JavaSoft \ Java Runtime Environment 被命名为RegKey,而 CurrentVersion 被命名为属性选项卡。
第二个属性在属性中命名为 JREVERSIONPATH ,对于RegKey,给出了 SOFTWARE \ JavaSoft \ Java运行时环境\ [JREVERSION] 对于Value,指定了 JavaHome 。因此, JREVERSION 会返回最新版本号,并且在 JREVERSIONPATH 的路径中使用此属性来查找 JavaHome ,其中包含所需的目录路径。
最后,在文件系统选项卡上, [JREVERSIONPATH] 被赋予 DefaultLocation 的值。