2011-08-04 21 views
2

私はこの作業をするのに苦労しています。彼らはそこに作成されたディレクトリ内のALLUSERSFOLDERにいくつかのファイルをコピーし、そのアクセス権を変更する必要があります。ディレクトリを作成し、権限を変更してファイルをコピーするMSI(Wix)

ファイル(移動)私は<CreateFolder>, <util:PermissionEx> and <CopyFile>を使用してみましたが、私は唯一のフォルダが作成されますように管理し、そのpemissionsは変更はなく、コピーしないように、ここでの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

あなたはこのコードを試すことができます。フォルダを作成してそのフォルダの権限を変更すると、このカスタムアクションが呼び出されます

<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" /> 
関連する問題