2010-03-10 4 views
1

Je dois être en mesure de copier un fichier existant sur le disque dur d'une machine cible en fonction d'un paramètre de registre qui contient le chemin du dossier.Wix CopyFile uniquement sur la machine cible

J'ai essayé d'obtenir cela pendant un jour ou deux et j'ai de la difficulté, quelqu'un peut-il m'aider?

Merci,

B

Répondre

3

Essayez quelque chose le long de ces lignes:

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

Vous pouvez remplir MYTESTDIR avec une valeur du registre à l'aide d'un RegistrySearch.

1

Vous pouvez d'abord rechercher votre base de registre pour le fichier comme suit:

<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> 

Utilisez ensuite une action personnalisée pour définir le nom du fichier

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

puis copier le fichier tel que décrit par la réponse précédente ...

Questions connexes