3

所以我有一个巨大的文件结构,我希望安装程序(我正在使用 wix 构建)复制到客户端位置。目前我正在输入它:

<Directory Id="xyz" Name = "abc FileSource = "sdfsdf">
    <Component Id="asdas" Guid="asdasd">
        <File Id = "asdfgrs" Name="name" />
    </Component>
</Directory>

随着文件数量的增加,我希望以自动化的方式完成。使用热量我能够产生:

<ComponentGroup Id="weqw">
   <Component Id="2132312" Directory="Some random string (cause of concern>" Guid="asdasd">
        <File Id="sdqwdqwd> keyPath="yes" Source = "Correct source path" />
    </Component>
<ComponentGroup>

我担心的是,由于热生成的组件的目录字段中存在一些随机字符串,我不会复制目录结构。这是真的?有没有解决的办法?

4

1 回答 1

4

heat /?输出:

-dr      directory reference to root directories (cannot contains spaces 
         e.g. -dr MyAppDirRef)

如果您使用 heat 递归地收获一个目录结构,那么-dr交换机将设置根目标文件夹的 ID。此 ID 应该与Directory您在 wxs 文件中其他地方指定的元素的 ID 匹配。

对于收获的子文件夹,heat 仍然会生成一个随机 ID。给定的 ID 将在生成的 XML 文件中出现多次:

  1. Directory由 heat 为该子文件夹生成的元素中,作为Id属性。

  2. Component与该文件夹关联的元素中,作为Directory属性。

ID 仅用于将Component元素链接到Directory元素。它不是安装后出现的文件夹名称。它仅用作 Windows Installer 数据库中的键。

于 2011-05-24T10:45:09.773 回答