WIX中的目录元素

时间:2010-07-08 09:54:54

标签: wix

我需要澄清* .wxs文件中的目录结构。据我所知,它将文件安装在我们在directory元素中指定的目录中。它还有其他用途吗?

如果确实描述了将安装产品的目录结构,那么如果用户在安装程序中有浏览选项,则会发生这种情况。

如果我不想在我的.msm文件中使用任何目录结构,我该怎么做?

    http://schemas.microsoft.com/wix/2003/01/wi'>                   

      <Directory Id='TARGETDIR' Name='SourceDir'>
         <Directory Id='MyModuleDirectory' Name='.'>
            <Component Id='MyModuleComponent' Guid='87654321-4321-4321-4321-110987654321'>
               <File Id='readme2' Name='readme2.txt' src='readme2.txt' />
            </Component>
         </Directory>
      </Directory>
    </Module>
</Wix>

1 个答案:

答案 0 :(得分:3)

有几点:

1)您必须在MSM中有一个目录,因为每个组件都必须属于一个目录。

2)将模块合并到安装程序中时,将模块目录关联/重定向为安装程序中目录的子项。例如:

<!-- in your MSI .wxs -->
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="CompanyFolder" Name="DeploymentEngineering">
      <Directory Id="INSTALLLOCATION" Name="Fireworks">
        <Merge Id="FireworksMM" SourceFile="..." DiskId="1" Language="1033">

这意味着INSTALLLOCATION的默认值为:

[ProgramFilesFolder] DeploymentEngineering \ Fireworks

由于模块目录的值为'。'和INSTALLLOCATION一样,它的父节点也有默认值[ProgramFilesFolder] DeploymentEngineering \ Fireworks

如果用户点击浏览按钮并将INSTALLLOCATION的值更改为另一个目录,则一切都会正常,因为模块目录仍然是INSTALLLOCATION的子节点,其值为'。'。

有意义吗?