wix - Component元素包含一个意外的子元素'Directory'

时间:2013-10-27 12:09:56

标签: xml vbscript wix installer windows-installer

我正在编写一个VB脚本,递归地进入目录并创建一个WIX XML文件 我收到错误Component元素包含一个意外的子元素'Directory'。当我尝试编译我的WIX时,有人可以帮忙。

    <Media Id="1" Cabinet="simple.cab" EmbedCab="yes" />
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder" Name="PFiles">
            <Directory Id="MSI" Name="MSI">
                <Component Id="first.txt" DiskId="1" Guid="*">
                    <File Id="first.txt" Name="first.txt" Source="C:\Users\xxxx\Desktop\MSI\first.txt" />
                </Component>
                <Component Id="TestProduct" DiskId="1" Guid="*">
                    <Directory Id="TestProduct" Name="TestProduct">
                        <Component Id="snet" DiskId="1" Guid="*">
                            <Directory Id="snet" Name="snet">
                                <Component Id="file1.txt" DiskId="1" Guid="*">
                                    <File Id="file1.txt" Name="file1.txt" Source="C:\Users\xxxx\Desktop\MSI\TestProduct\snet\file1.txt" />
                                </Component>
                                <Component Id="custom" DiskId="1" Guid="*">
                                    <Directory Id="custom" Name="custom">
                                        <Component Id="file2.txt" DiskId="1" Guid="*">
                                            <File Id="file2.txt" Name="file2.txt" Source="C:\Users\xxxx\Desktop\MSI\TestProduct\snet\custom\file2.txt" />
                                        </Component>
                                    </Directory>
                                </Component>
                            </Directory>
                        </Component>
                    </Directory>
                </Component>
            </Directory>
        </Directory>
    </Directory>
    <Feature Id="TestProductFeature" Title="Test" Level="1">
        <ComponentRef Id="first.txt" />
        <ComponentRef Id="TestProduct" />
        <ComponentRef Id="snet" />
        <ComponentRef Id="file1.txt" />
        <ComponentRef Id="custom" />
        <ComponentRef Id="file2.txt" />
    </Feature>
    <UI />
</Product>

1 个答案:

答案 0 :(得分:4)

WiX已经有一个程序执行此操作,它被称为Heat。如果您只想自己编写一个,您需要了解Directory可以是Directory的子级 目录是Component的父级,而不是相反。组件只能在一个目录中安装文件。

您可以使用我的工具IsWiX拖放文件并查看生成的XML,以了解它应该是什么样的。