【问题标题】:Get location from where msi installer is being launched获取启动 msi 安装程序的位置
【发布时间】:2015-09-16 20:58:53
【问题描述】:

我正在使用 VC++ 制作一个 msi 安装程序,它将 *.jar 文件复制到指定的目标位置。 *.jar 文件随 msi 安装程序提供(Duh!)。但我需要找到启动 msi 安装程序的位置。例如,如果我在 DVD 中提供整个设置,并且用户将 DVD 放入驱动器中,并且他的 DVD 驱动器是 G:\,我需要安装程序知道它是从“G:”驱动器启动的所以它应该在 G:\ 中查找 *.jar 文件。目标是使 msi 安装程序从任何地方启动,以便获得需要从中复制支持文件的必要路径。目前,msi 安装程序是从 *.cpp 文件启动的,我已经提到了 *.jar 文件专门针对 msi 安装程序的路径(换句话说,在 c++ 程序中硬编码了路径)。我需要实时获取路径。我是初学者。有人可以帮我吗?

【问题讨论】:

    标签: visual-c++ windows-installer


    【解决方案1】:

    您的问题令人困惑,因为 C++ 是一种用于在 Windows 上生成程序可执行文件的语言/编译器。它不制造 MSI。

    从 MSI 的角度来看,您可能希望查看 SourceDir 或可能的 OriginalDatabase 属性,以查找安装程序的运行位置。

    【讨论】:

    • 我的错。我正在使用 Visual Studio 2010 创建 c++ 代码。它支持创建 msi。
    【解决方案2】:

    好的。得到了我的问题的答案。我在启动条件选项卡中创建了两个“添加注册表搜索”。第一个属性在属性中命名为 JREVERSIONSOFTWARE\JavaSoft\Java Runtime Environment 作为 RegKey,CurrentVersion 作为在属性选项卡。

    第二个属性在Property中命名为JREVERSIONPATH,对于RegKey,给出了SOFTWARE\JavaSoft\Java Runtime Environment\[JREVERSION]值,JavaHome 已指定。因此,JREVERSION 返回最新版本号,并在 JREVERSIONPATH 的路径中使用此属性来查找包含所需目录路径的 JavaHome .
    最后,在文件系统选项卡上,[JREVERSIONPATH] 被指定为 DefaultLocation 的值。

    【讨论】:

      猜你喜欢
      • 2011-01-03
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多