2010-07-08 51 views
2

我需要对* .wxs文件中的目录结构进行一些说明。据我所知,它将文件安装到我们在目录元素中指定的目录中。它有其他用途吗?WIX中的目录元素

如果确实描述了安装产品的目录结构,而不是安装程序中用户有浏览选项会发生的情况。

如果我不想在我的.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> 
+0

我建议你看看http://iswix.codeplex.com它会帮助你生成你的合并模块。 – 2010-07-08 16:13:03

回答

3

几个要点:

1)你必须在一个目录因为每个组件都必须属于一个目录。

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 \烟花

由于模块的目录具有值它的默认值是[ProgramFilesFolder] DeploymentEngineering \ Fireworks

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

有意义吗?