Source属性的目的是什么?看看这个片段:
<Component Id="MyComponent" Guid="123456789-abcd-defa-1234-DCEA-01234567890A">
<File Id="myFile" Name="myFile.dll" Source="myFile.dll"/>
</Component>
由于Name和Source具有相同的值,Source添加了什么?没有它,代码不能编译。
在哪里可以找到解释这些属性的文档?我为MSI尝试了MSDN,但没有找到答案。
感谢。
答案 0 :(得分:2)
WiX和MSI不一样。因此在MSDN文档中没有引用;)
您需要参考安装了WiX的 WiX.CHM 或online WiX documentation。
假设您正在谈论File/@Name
和File/@Source
,如果源文件的布局方式与WiX目录结构相同,则这是可选的。
当您在-b
属性中对light
和SourceDir
使用多个File/@Source
参数时,会出现这个漂亮的部分。例如......
<File Id="example.dll" KeyPath="yes" Source="SourceDir\example.dll" DefaultLanguage="0" />
我通常在标准版本中指定4个带-b
的文件夹。一个用于各种安装程序特定资源,一个用于存储合并模块,一个用于我所有安装之间的公共资源,另一个用于我的源文件。现在,WiX将查看命令行中指定的每个目录,如果我在具有不同目录布局的不同系统上构建,这将使事情变得更加便携。
根据documentation,如果(在您的示例中)myfile.dll
位于当前目录中,则可以省略File/@Source
属性。
答案 1 :(得分:1)
File / @ Source提供获取文件信息(大小,语言,哈希)的位置,并将其复制到正确的位置(在文件柜中或布置在相对于MSI文件的目录中)。 / p>
如果您不想使用其他名称安装文件,则文件/ @名称是可选的。换句话说,如果文件在构建计算机上以正确的名称存在,只需使用File / @ Source引用它并保留File / @ Name。
文件/ @Id也是可选的,只要您的文件名是唯一的。您不能拥有两个具有相同File / @ Id的文件,因此在发生冲突时添加File / @ Id。
在WiX v3.5中,我经常这样做:
<Component>
<File Source="my.exe"/>
</Component>