【发布时间】:2016-09-08 19:21:38
【问题描述】:
在 wix 项目中,您通常会看到类似的一行
<Directory Id="TARGETDIR" name="SourceDir">
但是为什么name需要在这里设置呢?据我了解,name 属性指定了在进行安装的机器上生成的文件夹的名称。但是不会创建 SourceDir 文件夹,为什么需要它呢?
【问题讨论】:
标签: wix windows-installer
在 wix 项目中,您通常会看到类似的一行
<Directory Id="TARGETDIR" name="SourceDir">
但是为什么name需要在这里设置呢?据我了解,name 属性指定了在进行安装的机器上生成的文件夹的名称。但是不会创建 SourceDir 文件夹,为什么需要它呢?
【问题讨论】:
标签: wix windows-installer
更新: 事实证明,这个问题以前被问过。查看这篇文章,了解 Wix 创建者 Rob Mensching 的解释:In WiX files, what does Name="SourceDir" refer to?
TARGETDIR 在 MSI 文件的目录表的解析中起着特殊的作用。具体来说,它形成了源目录树和目标目录树的根。这在 MSI 文件中由 Directory_Parent 列中的空值指示:
目录解析后,SourceDir 将指向运行 MSI 的路径。此外,TARGETDIR 将是大多数内置 Windows 目录(如上图所示的 ProgramFilesFolder 和 ProgramMenuFolder)的父文件夹。
因此,简而言之,SourceDir 被定义为保存正在运行的 MSI 文件的位置,并且必须知道该位置才能解析分发媒体上要安装的每个文件的源位置。
目标位置是文件的完整安装路径:C:\Program Files\My App(文件所在的位置)。源位置是文件的完整源路径:[SourceDir]Program Files\My App(文件的来源)。
已经晚了,如果不清楚,请告诉我。
【讨论】: