我正在创建一个WiX安装程序,我想将最终用户计算机上存在的文件移动到他们选择的位置。但是,CopyFile不起作用,日志文件没有显示错误。
这是我的目录树:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="Remindex">
</Directory>
</Directory>
<Directory Id="DATALOCATION" Name="File"/>
<Directory Id="ORIGINALDATA"/>
</Directory>
我的CopyFile组件:
<DirectoryRef Id="TARGETDIR">
<Component Id="CMP_Data" Guid="{C35F8888-D868-4B18-991E-29E217EFE445}" KeyPath="yes">
<CopyFile Id="CopyData"
DestinationDirectory="DATALOCATION"
DestinationName="Remindex Local Data"
SourceProperty="ORIGINALDATA"
SourceName="Remindex Local Data"
Delete="yes"/>
</Component>
</DirectoryRef>
DATALOCATION是一个属性,它包含用户在PathEdit对话框中选择的路径。 ORIGINALDATA是要移动的文件的原始位置。所以文件应该从ORIGINALDATA移动到DATALOCATION。然而,一切都没有发生。我尝试将ORIGINALDATA放在SourceDirectory和SourceProperty属性中。
该组件在日志文件中显示三次(不是并排),虽然我不确定这些条目的内容:
Component: CMP_Data; Installed: Absent; Request: Local; Action: Local
_CMP_Data65; Installed: Null; Request: Local; Action: Local
_CMP_Data66; Installed: Null; Request: Local; Action: Local
任何建议都将不胜感激。
答案 0 :(得分:0)
我的问题是,当CopyFile仅适用于单个文件时,我正在尝试复制文件夹。
为了解决这个问题,我将不得不手动创建我想要复制的文件夹中的每个子文件夹,并使用所有旧文件夹的内容填充这些子文件夹。我将使用CopyFile并在SourceName属性(SourceName =“*”)中放置一个通配符,以从特定的子文件夹中获取所有内容。