2013-12-19 3 views
1

일부 권장되지 않는 파일을 임시 디렉토리로 이동시키는 사용자 정의 동작과 설치 프로그램이 롤백하여 다시 실행하는 경우 실행되는 다른 동작이 있습니다. 이전 설치 관리자는 installshield이므로 사용자 지정 작업을 사용해야합니다.wix에서 롤백 사용자 지정 작업에 속성을 전달하는 방법?

  <Custom Action="SetRollbackData" After="DeleteUserAdminDeprecatedFiles"> 
      OLD_VERSION_FOUND OR      <!--Run if we are doing a major upgrade (msi -> msi).--> 
      REMOVEINSTALLSHIELD 
     </Custom> 
     <Custom Action="DeleteUserAdminDeprecatedFiles" Before="InstallFinalize"> 
      OLD_VERSION_FOUND OR      <!--Run if we are doing a major upgrade (msi -> msi).--> 
      REMOVEINSTALLSHIELD       <!--Run if we are upgrading installshield instance.--> 
     </Custom> 
     <Custom Action="RestoreDeprecatedFiles" After="InstallInitialize"/> 

그런 다음 로그에 내가 얻을 : 아래

<CustomAction Id="DeleteUserAdminDeprecatedFiles" BinaryKey="FileSearchCA" DllEntry="DeleteUserAdminDeprecatedFiles" Execute="immediate" Return="check" /> 

    <CustomAction Id="RestoreDeprecatedFiles" 
        BinaryKey="FileSearchCA" 
        DllEntry="RestoreDeprecatedFiles" 
        Execute="rollback" 
        Return="ignore" 
       /> 

    <CustomAction Id="SetRollbackData" Property="RestoreDeprecatedFiles" Value="RootDir=[DEPRECATEDFILESROOTDIR];TempDir=[DEPRECATEDTEMPORARYDIR]" Execute="immediate" Return="ignore"/> 

이러한 작업의 일정입니다 :

다음은 내 사용자 지정 작업입니다

MSI (s) (04:74) [11:31:22:162]: Doing action: DeleteUserAdminDeprecatedFiles 
Action 11:31:22: DeleteUserAdminDeprecatedFiles. 
Action start 11:31:22: DeleteUserAdminDeprecatedFiles. 
MSI (s) (04:3C) [11:31:22:171]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI8804.tmp, Entrypoint: DeleteUserAdminDeprecatedFiles 
SFXCA: Extracting custom action to temporary directory: C:\Windows\Installer\MSI8804.tmp-\ 
SFXCA: Binding to CLR version v4.0.30319 
Calling custom action FileSearchCA!FileSearchCA.FileSearchCA.DeleteUserAdminDeprecatedFiles 
Starting UserAdmin delete deprecated files Custom Action. 
MSI (s) (04!50) [11:31:22:376]: PROPERTY CHANGE: Adding DEPRECATEDFILESROOTDIR property. Its value is 'C:\Program Files\Duck Creek Technologies\ExampleUserAdmin\bin'. 
MSI (s) (04!50) [11:31:22:380]: PROPERTY CHANGE: Adding DEPRECATEDTEMPORARYDIR property. Its value is 'C:\Users\LMUser\AppData\Local\Temp\t3n1evfp.dwa'. 
Action ended 11:31:22: DeleteUserAdminDeprecatedFiles. Return value 1. 
MSI (s) (04:74) [11:31:22:429]: Doing action: SetRollbackData 
Action 11:31:22: SetRollbackData. 
Action start 11:31:22: SetRollbackData. 
MSI (s) (04:74) [11:31:22:437]: Note: 1: 2723 2: SetRollbackData 
DEBUG: Error 2723: Custom action SetRollbackData specifies unsupported type 

이 문제를 해결하는 어떤 도움 많이 감사하겠습니다.

답변

0

저는 바보입니다. 고쳐졌습니다.

<CustomAction Id="SetRollbackData" Property="RestoreDeprecatedFiles" Value="RootDir=[DEPRECATEDFILESROOTDIR];TempDir=[DEPRECATEDTEMPORARYDIR]" Execute="immediate" Return="ignore"/> 

에 :

<CustomAction Id="SetRollbackData" Property="RestoreDeprecatedFiles" Value="RootDir=[DEPRECATEDFILESROOTDIR];TempDir=[DEPRECATEDTEMPORARYDIR]" /> 

나는 변경했다