Скопируйте файл из места установки в другое место в wix при установке - PullRequest
8 голосов
/ 06 декабря 2010

Я создал установочный файл msi, который содержит некоторые файлы в папке «Sample», которые следует скопировать в папку temp . Кто-нибудь подскажет, как это сделать?

Ответы [ 2 ]

10 голосов
/ 06 декабря 2010

Примерно так:

   <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="MyVendor" Name="MyVendor">
            <Directory Id="INSTALLDIR" Name="MyDir">
                <Component Id="MyFileId" Guid="...G1...">
                    <File Id="MyFileId" Name="MyFile" Source="...blabla...\MyFile" KeyPath="yes" >
                    </File>
                </Component>


     <DirectoryRef Id="TARGETDIR">
            <Component Id="MyFileCopyId" Guid="...G2...">
                <RemoveFile Id="MyFileRemoveId" Name="MyFile" On="install" Directory="MyCopyDir" />
                <CopyFile Id="MyFileCopyId" FileId="MyFileId" DestinationDirectory="MyCopyDir" />
            </Component>


    <Feature Id="MyFeature" ... >
            <ComponentRef Id="MyFileId" />
            <ComponentRef Id="MyFileCopyId" />

Важным элементом Xml является CopyFile. Вам нужно создать новый компонент, который является копией первого (с разными идентификаторами, направляющими, ... конечно). Оба компонента должны быть объявлены в функции.

2 голосов
/ 06 декабря 2010

CopyFile элемент - ваш друг. Вы можете вкладывать его в исходный элемент File несколько раз, в зависимости от того, сколько раз вам нужно его скопировать. Поместите правильные папки назначения и пусть установщик Windows сделает все остальное.

...