CopyFile无法正常工作

时间:2013-07-03 21:17:03

标签: wix wix3.7

我正在创建一个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

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我的问题是,当CopyFile仅适用于单个文件时,我正在尝试复制文件夹。

为了解决这个问题,我将不得不手动创建我想要复制的文件夹中的每个子文件夹,并使用所有旧文件夹的内容填充这些子文件夹。我将使用CopyFile并在SourceName属性(SourceName =“*”)中放置一个通配符,以从特定的子文件夹中获取所有内容。