【问题标题】:WIX public properties displayed on the UIUI 上显示的 WIX 公共属性
【发布时间】:2011-04-06 01:45:59
【问题描述】:

我们有一个使用 WIX 创建的安装程序。作为此安装的一部分,我们希望显示当前选择的安装路径。显然,我认为这会比现在容易得多。我试过使用公共属性“INSTALLDIR”(我知道我们没有使用 Installshield,这个值是一个目录 ID。)

<Directory Id="INSTALLDIR" Name="AcmeInc">

我还可以看到在运行安装时设置 INSTALLDIR 的位置

MSI(EC:6C) Dir (target): Key: INSTALLDIR , Object: C:\Program Files\AcmeInc\

但是当我尝试使用 Text 属性在 UI 上显示它时,我得到“...\.”,它甚至看起来都不是相对路径。

我知道我在这里缺少一些简单的东西。

【问题讨论】:

  • 您使用的是自定义 UI,还是 Wix UI 之一?
  • INSTALLDIR有没有改变值的记录?
  • @Alexy:当您询问是否有任何记录 INSTALLDIR 更改其值时。如果您的意思是在安装期间,是的。每当我更改值时,我都可以在日志中看到。
  • 日志中是否有 INSTALLDIR 值发生变化的第二条记录?

标签: installation wix windows-installer wix3.5


【解决方案1】:

假设您使用的是 WiX 3.5 和 MajorUpgrade 元素 - 以下应该可以工作(我通常使用 APPLICATIONFOLDER 而不是 INSTALLDIR - 但它们应该可以互换)。

首先,让我们按照http://robmensching.com/blog/posts/2011/1/14/ARPINSTALLLOCATION-and-how-to-set-it-with-the-WiX-toolset 中的描述设置ARPINSTALLOCATION

<SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLDIR]" After="CostFinalize" />

现在让我们将选定的安装文件夹设置为 previous 安装文件夹,如果以前存在的话。

<Property Id="INSTALLDIR" Secure="yes">
    <RegistrySearch Id="FindInstallLocation"
        Root="HKLM"
        Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[WIX_UPGRADE_DETECTED]"
        Name="InstallLocation"
        Type="raw"
        Win64="yes" />
</Property>

在 UI 序列期间,我们希望将这个值设置为“早期”

<InstallUISequence>
    <AppSearch After="FindRelatedProducts"/>
</InstallUISequence>

【讨论】:

  • 抱歉耽搁了。感谢您的回答,After="CostFinalize" 是关键。 :)
猜你喜欢
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 2015-03-21
相关资源
最近更新 更多