【问题标题】:How to set a WiX RegistryValue relative to the install path如何设置相对于安装路径的 WiX RegistryValue
【发布时间】:2011-11-04 10:20:40
【问题描述】:

这给我留下了 \Default.udl

<RegistryKey Key="Software\My Company\Product\Connections" Root="HKCU">
  <RegistryValue Name="Default" Value="[INSTALLLOCATION]\Default.udl" Type="string" />
</RegistryKey>

我想要 C:\Program Files\Company\Product\Default.udl 之类的东西

【问题讨论】:

  • 您是否使用 INSTALLLOCATION 作为目录 ID(而不是,例如,INSTALLDIR 或 APPLICATIONFOLDER)?
  • 在我写这个问题的时候我没有使用任何,现在我正在使用应用程序文件夹。奇怪的是,我可以仅使用安装位置成功创建具有正确路径的密钥,但不能使用之后附加的文件名

标签: wix registry relative-path


【解决方案1】:

我能想到一些可能导致问题的原因。

您确定您的目录布局正确吗?它应该看起来像这样:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="CompanyFolder" Name="My Company">
      <Directory Id="INSTALLLOCATION" Name="Product">
      </Directory>
    </Directory>
  </Directory>
</Directory>

我相信HKCU hive 仅用于按用户安装,但您指定的路径位于 Program Files 下。您可能想查看Installation Context documentation,了解每用户安装和每机器安装之间的差异。在某些版本的 Windows 中,ProgramFilesFolder 在每用户模式下具有不同的值。

或者,如果您的安装程序正在放置 Default.udl 文件,您可以使用 [#filekey] syntax 直接指向该文件。

<RegistryValue Name="Default" Value="[#Default.udl]" Type="string" />

【讨论】:

  • 太好了,我实际上使用了 APPLICATIONFOLDER,但是当我有机会时,我会切换到 [#FILE] 表示法。您的回答很明确,包括上周可能真正让我大开眼界的安装环境的相关奖励信息!
【解决方案2】:

使用 TARGETDIR 代替 INSTALLLOCATION

【讨论】:

  • 设置为 C:\\Default.udl
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多