Wix 安装位置

Wix install location

我有一个 WIX 设置,允许用户 select 安装位置。卸载时,我需要 运行 一个自定义操作来激活安装位置的文件。我尝试从 session["INSTALLDIR"] 获取安装位置,但结果是默认路径,而不是用户指定的路径。

我怎样才能到达那个位置?

如果您以后需要安装 INSTALLDIR,例如卸载,您应该使用下面 link 中描述的记住 属性 模式。

"The root issue is that the Windows Installer does not save Property values for you. That means if the user enters values in the install UI or passes them on the command-line, those values will be not be present during repair, upgrade nor uninstall."

http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern/

我已经在我自己的安装程序中完成了这个 - 下面应该可以工作。

这会添加一个 属性 以从注册表中检索安装位置值。

<Property Id="INSTALLDIR">
    <RegistrySearch Id='Registry' Type='raw' Root='HKCU' Key='Software$(var.Manufacturer)$(var.ProductName)' Name='Location' />
</Property>

这会在注册表中设置安装位置。

<Component Id="Registry" Guid="*">
    <RegistryKey Root="HKCU" Key="Software$(var.Manufacturer)$(var.ProductName)">
        <RegistryValue Name="Location" 
                       Type="string" 
                       Value="[INSTALLDIR]" 
                       Action="write" 
                       KeyPath="yes" />
    </RegistryKey>
    <util:RemoveFolderEx On="uninstall" Property="INSTALLDIR" />