使用WiX将文件夹安装到ALLUSERS(不是快捷方式!)

Jim*_*mmy 4 wix wix3.7

我有一个MSI文件正在安装一个包含大量文件的文件夹.我有一个位置,我将文件放入:

Windows XP: C:\ Documents and Settings\All Users\Documents\MyFolder

Windows 7: C:\ Users\Public\Documents\MyFolder

问题是我不想对这些路径进行硬编码,但无论我在哪里看都无法找到如何做到这一点,因为我看到的每个地方都在谈论为所有用户制作快捷方式,这不是我想要的做.如何将文件夹安装到"所有用户"位置?

像这样的东西:

<PropertyRef Id="WIX_DIR_COMMON_DOCUMENTS" />

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="WIX_DIR_COMMON_DOCUMENTS">
    <Directory Id="MyFolder" Name="MyFolder">
Run Code Online (Sandbox Code Playgroud)

Tom*_*get 6

Windows Installer没有该文件夹的属性,但是提供了WiX提供的自定义操作.

根据OSInfo自定义操作的文档:

  1. 引用链接器的WixUtilExtension扩展.
  2. 通过引用定义属性:

    <PropertyRef Id="WIX_DIR_COMMON_DOCUMENTS" />
    
    Run Code Online (Sandbox Code Playgroud)

然后,在目录下的某个位置定义TARGETDIR目录.例如:

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="WIX_DIR_COMMON_DOCUMENTS">`
        <Directory Id="MyFolder" Name="MyFolder" />`
      </Directory>`
    </Directory>`
Run Code Online (Sandbox Code Playgroud)