我需要澄清* .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>
答案 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的子节点,其值为'。'。
有意义吗?