【问题标题】:MSI: setting TARGETDIR with multiple Launch ConditionsMSI:使用多个启动条件设置 TARGETDIR
【发布时间】:2013-09-09 15:55:15
【问题描述】:

我想根据已安装的应用程序版本填充 TARGETDIR。

我尝试的是添加多个 RegKey 启动条件,每个条件检查不同版本的应用程序多年来使用的不同 RegKey,但所有设置 TARGETDIR。

这个想法是,如果有任何匹配,它将设置 TARGETDIR - 但这种方法似乎不起作用..

当可以基于多个 RegKey 条目进行设置时,设置 TARGETDIR 的最佳方法是什么?

我正在使用带有安装程序项目的 VS2010。

【问题讨论】:

    标签: windows-installer


    【解决方案1】:

    您不需要启动条件,这些用于停止安装,而不是配置其安装参数。

    您需要使用注册表搜索所需的版本,然后使用add custom actions 将 TARGEDIR 属性设置为所需的值,确保您在 CostFinalize 之前执行此操作,即恰好在执行搜索之后。用作注册表搜索的自定义操作的执行条件,因此仅执行与找到的版本对应的自定义操作。

    此外,请确保您为从未安装过以前版本的用户(即您的应用程序的新用户)设置了良好的默认设置。

    【讨论】:

    • 好的,有道理。所以我为每个版本填充了许多属性,然后我必须编写一个脚本来将这些属性中的 1 个分配给 TARGETDIR?我有这个权利吗?
    • 您可以跳过设置属性,从自定义操作中您可以直接将 TARGETDIR 设置为所需的值。只需确保在执行 CostFinalize 之前根据从机器读取的注册表进行设置。
    • 啊,看起来您无法在 VStudio 中的 CostFinalize 之前运行 Install:Custom Action。
    • 确实,VS 在配置设置项目方面非常有限。您可以添加一个更改自定义操作序列的构建后事件,这样您就可以将其设置为在需要时执行:stackoverflow.com/questions/617409/…
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多