你能将TARGETDIR设置为命令行参数吗?

时间:2012-10-31 14:59:22

标签: wix wix3.6

我已经生成了一个msi,我希望能够更改默认的安装目录,并且我知道你可以使用命令行参数更改WIX属性,但我似乎无法让这个适用于TARGETDIR这样:

  

Installer.msi TARGETDIR = C:\

我的目录片段是:

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="SystemFolder"/>

      <!-- Desktop-->
      <Directory Id="DesktopFolder"/>

      <Directory Id="ProgramFilesFolder">
        <Directory Id="DIR_Company" Name="Company Name">
          <Directory Id="DIR_SubDir" Name="Sub Directory" >
            <Directory Id="INSTALLDIR" Name="My Product">
              <Directory Id="DIR_ONE" Name="ONE"  />
              <Directory Id="DIR_TWO" Name="TWO" />
              <Directory Id="DIR_THREE" Name="THREE" />
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>

  </Fragment>

这是不可能的,还是我的语法?

1 个答案:

答案 0 :(得分:4)

我怀疑这是因为您在目录层次结构中有预定义的文件夹,例如ProgramFilesFolder。即使您通过命令行设置TARGETDIR,它也会被Program Files的众所周知的位置覆盖,并且所有子文件夹都会变为相对的。

作为解决方法,您可以从命令行设置INSTALLDIR。如果为其指定完整路径,它将覆盖您在WiX创作中定义的初始层次结构。