SourceProperty 作为 CopyFile 中的嵌套目录
SourceProperty as Nested Directory in CopyFile
我想使用 WIX 安装程序将两个文件从现有位置复制到新位置。
INSTALLDIR 和目标目录已经定义。在 SourceProperty 中,首先我想使用 INSTALLDIR\P\X\Y
,其次我想使用 INSTALLDIR\Q\X\Y
<ComponentGroup Id="aYML" Directory="INSTALLDIR">
<Component Id="CopyaYML" Guid="" Transitive="yes">
<CopyFile Id ="aYMLcopy" SourceProperty="INSTALLDIR\P\X\Y" SourceName="A.yml" DestinationProperty="Destination"/>
<CreateFolder/>
</Component>
</ComponentGroup>
<ComponentGroup Id="bYML" Directory="INSTALLDIR">
<Component Id="CopybYML" Guid="" Transitive="yes">
<CopyFile Id ="bYMLcopy" SourceProperty="INSTALLDIR\Q\X\Y" SourceName="B.yml" DestinationProperty="Destination"/>
<CreateFolder/>
</Component>
</ComponentGroup>
WIX 中不允许使用 \ 如何实现?
它 has to be 一个 属性 名称,它具有有限的字母、数字和下划线字符集。您可以使用 SetProperty
自定义操作(类型 19)使用目录 ID 和文件名甚至 [#fileId]
属性 格式来格式化值,尽管这在旧版本中不可靠Windows 个安装程序。
在 InstallFiles
之前但在 CostFinalize
之后,您可以这样做:
<SetProperty Id="AYMLPATH" Before="InstallFiles" Sequence="execute" value="[ParentDirectoryId]A.yml" />
不过,使用 SourceDirectory
属性并指定目录 ID 可能更容易。
不过,复制文件可能会导致某些服务场景出现问题。例如,如果您在补丁中复制文件,则更改无法回滚。如果文件很小,只需复制文件即可。甚至有复制文件记录的技巧,但在 CAB 中保留单个文件 blob,但不在本答案的范围内。
我想使用 WIX 安装程序将两个文件从现有位置复制到新位置。
INSTALLDIR 和目标目录已经定义。在 SourceProperty 中,首先我想使用 INSTALLDIR\P\X\Y
,其次我想使用 INSTALLDIR\Q\X\Y
<ComponentGroup Id="aYML" Directory="INSTALLDIR">
<Component Id="CopyaYML" Guid="" Transitive="yes">
<CopyFile Id ="aYMLcopy" SourceProperty="INSTALLDIR\P\X\Y" SourceName="A.yml" DestinationProperty="Destination"/>
<CreateFolder/>
</Component>
</ComponentGroup>
<ComponentGroup Id="bYML" Directory="INSTALLDIR">
<Component Id="CopybYML" Guid="" Transitive="yes">
<CopyFile Id ="bYMLcopy" SourceProperty="INSTALLDIR\Q\X\Y" SourceName="B.yml" DestinationProperty="Destination"/>
<CreateFolder/>
</Component>
</ComponentGroup>
WIX 中不允许使用 \ 如何实现?
它 has to be 一个 属性 名称,它具有有限的字母、数字和下划线字符集。您可以使用 SetProperty
自定义操作(类型 19)使用目录 ID 和文件名甚至 [#fileId]
属性 格式来格式化值,尽管这在旧版本中不可靠Windows 个安装程序。
在 InstallFiles
之前但在 CostFinalize
之后,您可以这样做:
<SetProperty Id="AYMLPATH" Before="InstallFiles" Sequence="execute" value="[ParentDirectoryId]A.yml" />
不过,使用 SourceDirectory
属性并指定目录 ID 可能更容易。
不过,复制文件可能会导致某些服务场景出现问题。例如,如果您在补丁中复制文件,则更改无法回滚。如果文件很小,只需复制文件即可。甚至有复制文件记录的技巧,但在 CAB 中保留单个文件 blob,但不在本答案的范围内。