Wix CopyFile только на целевой машине - PullRequest
1 голос
/ 10 марта 2010

Мне нужно иметь возможность скопировать файл, который существует на жестком диске целевых машин, на основе параметра реестра, в котором содержится путь к папке.

Я пытался запустить это в течение дня или двух, и мне трудно, кто-нибудь может помочь?

Спасибо

B

Ответы [ 2 ]

3 голосов
/ 16 марта 2010

Попробуйте что-нибудь из следующего:

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

Вы можете заполнить MYTESTDIR значением из реестра, используя RegistrySearch.

1 голос
/ 20 февраля 2012

Вы можете сначала выполнить поиск файла в реестре следующим образом:

<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]" />
...