Windows installer MSI:使用多个启动条件设置TARGETDIR

Windows installer MSI:使用多个启动条件设置TARGETDIR,windows-installer,Windows Installer,我想根据已安装的应用程序版本填充TARGETDIR 我尝试的是添加多个RegKey启动条件,每个都检查不同版本的应用多年来使用的不同RegKey,但都设置了TARGETDIR 这个想法是,如果有匹配的话,它将设置TARGETDIR,但这种方法似乎不起作用 如果可以基于多个RegKey条目设置TARGETDIR,那么设置TARGETDIR的最佳方法是什么 我将VS2010与安装程序项目一起使用。您不需要启动条件,这些条件用于停止安装,而不是配置安装参数 您需要的是使用注册表搜索所需的版本,然后将T

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

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

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

如果可以基于多个RegKey条目设置TARGETDIR,那么设置TARGETDIR的最佳方法是什么


我将VS2010与安装程序项目一起使用。

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

您需要的是使用注册表搜索所需的版本,然后将TargetDir属性设置为所需的值,请确保在CostFinalize之前(即执行搜索之后)执行此操作。用作注册表搜索的自定义操作的执行条件,因此只执行与找到的版本相关的自定义操作


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

OK(确定)是有意义的。因此,我为每个版本填充了许多属性,然后我必须编写一个脚本,将其中的一个属性分配给TARGETDIR?您可以跳过设置属性,从自定义操作可以直接将TARGETDIR设置为所需的值。只需确保在执行CostFinalize之前根据从机器读取的注册表进行设置。啊,看起来您无法从VStudio中获得在CostFinalize之前运行的安装:自定义操作。实际上,VS在配置安装项目方面非常有限。您可以添加更改自定义操作序列的生成后事件,通过这种方式,您可以将其设置为在需要时执行: