仅在目标计算机上使用Wix CopyFile

时间:2010-03-10 17:34:03

标签: wix wix3

我需要能够根据保存文件夹路径的注册表设置复制目标计算机硬盘驱动器上存在的文件。

我一直试图让这一天持续一两天而且遇到困难,有人可以帮忙吗?

谢谢,

2 个答案:

答案 0 :(得分:3)

尝试以下几点:

<Component Id="MyComponent" Guid="E5FF53DE-1739-42c4-BE37-60F810C9CD69">  
 <Condition>MYTESTDIR</Condition>
 <CopyFile Id="fileToCopy.datCopy" SourceName="[MYTESTDIR]fileToCopy.dat" DestinationProperty="WEBSERVICEBINFOLDER" /> 
</Component>

您可以使用RegistrySearch从注册表中填充MYTESTDIR值。

答案 1 :(得分:1)

您可以首先在注册表中搜索该文件,如下所示:

<Property Id="PROPERTYNAME" Secure="yes">
  <RegistrySearch Id="SomeID"
          Root="HKLM"
          Type="raw"
          Key="SOFTWARE\SomeFolder\SomeSubFolder"
          Win64="yes"
          Name="InstallPath">
    <DirectorySearch Id="REQUIREDDIRECTORY" AssignToProperty="yes" Depth="1" Path="THEEXPECTEDPATH">
    </DirectorySearch>
  </RegistrySearch>
</Property>

然后使用自定义操作设置文件名

      <CustomAction Id="SETFILE"
      Property="FILE"
      Value="[PROPERTYNAME]file.extension" />

然后按照上一个答案的描述复制文件......

      <CopyFile Id="fileToCopy.datCopy" SourceName="[FILE]" DestinationProperty="[YOURDESTINATION]" />