MSI (Wix) для создания каталогов, изменения разрешений и копирования файлов - PullRequest
2 голосов
/ 04 августа 2011

Я изо всех сил пытаюсь заставить это работать. Идея состоит в том, чтобы скопировать некоторые файлы в ALLUSERSFOLDER в созданный там каталог, для которого также необходимо изменить разрешения.

Я пытался использовать <CreateFolder>, <util:PermissionEx> and <CopyFile>, но мне удалось только создать папку и изменить ее разрешения, но не скопировать (переместить) файлы, вот XML:

<Directory Id="ProgramFilesFolder">
      <Directory Id="APPLICATIONROOTDIRECTORY" Name="MyApp">
            <Directory Id="PFSTORAGE" Name="storage"/>
      </Directory>             
</Directory>

<Directory Id="CommonAppDataFolder">
        <Directory Id="ALLUSERSFOLDER" Name="MyApp"> 
                <Directory Id="AUSTORAGE" Name="storage"/>                    
           </Directory>

           <Component Id="AllUsersFiles" Guid="{F8765AB2-D78B-4A38-9FF4-DEEC1ACE6509}">
                <CreateFolder>
                    <util:PermissionEx User="Everyone" GenericAll="yes"/>
                </CreateFolder>
                <CopyFile Id="copy" DestinationProperty="AUSTORAGE" SourceProperty="PFSTORAGE" SourceName="*.*" Delete="yes" />
                <RegistryKey Root="HKCU" Key="Software\MyApp\install">
                            <RegistryValue Value="installing" Type="string" KeyPath="yes" />
                 </RegistryKey>
            </Component>
</Directory>

1 Ответ

0 голосов
/ 07 августа 2011

Вы можете попробовать этот код. Вызовите это настраиваемое действие, как только вы создадите папку и измените разрешения для папки

<CustomAction Id="C_SetQtCmdLineMoveFiles" Property="QtExecCmdLine"
   Value="&quot;[SystemFolder]cmd.exe&quot; /c move/Y &quot;[ALLUSERSFOLDER]storage\*.log&quot; &quot;[ALLUSERSFOLDER]NewFolder&quot;" />
<CustomAction Id="QtCmdMoveFiles" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="ignore" />
...