2011-09-13 4 views
2

설치 프로그램에 대해 정의한 custom action이 있습니다. 설치 프로그램이 실행중인 것 같지 않습니다. 내가 오카와 MSI하고 적절한 항목을 확인했습니다사용자 지정 작업이 실행되고 있지 않습니다.

<CustomAction Id="GetConfigProperties" BinaryKey="GetPropertiesDLL" DllEntry="GetPropertiesFromConfigFile" /> 

    <InstallExecuteSequence> 
     <RemoveExistingProducts After="InstallInitialize" /> 
     <Custom Action="NewerVersionDetected" After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom> 
     <Custom Action="GetConfigProperties" After="FindRelatedProducts"></Custom> 
     . . .    
    </InstallExecuteSequence> 

    <Binary Id="GetPropertiesDLL" SourceFile="$(var.LPRCore Installer CBP Helper.TargetDir)\LPRCore Installer CBP Helper.CA.dll" /> 

의 MSI의 테이블에 있습니다

다음은 사용자 지정 작업을 정의하는 WXS 파일의 라인입니다.

는 여기에 CustomActions.cs 파일의 코드의 발췌 한 것입니다 :

[CustomAction] 
    public static ActionResult GetPropertiesFromConfigFile(Session session) { 
     // Output a start message to the install log 
     session.Log("Begin GetPropertiesFromConfigFile"); 

     . . . 


     return ActionResult.Success; 
    } 

내가 무슨 일이 있었는지보고 싶었다 장소에서 코드에서 몇 가지 다른 session.Log 문이 있습니다.

이제 로깅을 사용하도록 설정했습니다. 메모장에서 로그 파일을 볼 때 session.Log으로 전화 한 메시지가 표시되지 않습니다. GetConfigProperties에 대한 참조가 없습니다. 사용자 지정 작업이 전혀 실행되지 않는 것으로 보입니다. 나는 무엇을 잘못 했는가?

답변

5

그것은 밝혀 때문에 사용자 지정 작업이 실행되지 않았 음 : 그것은 실행되도록 예약 된

  1. 잘못된 곳에서. 내 잘못으로, InstallUequence 섹션이 아니라 InstallSequence 섹션에 넣어야했습니다.

  2. 작업을 실행하기 전에 설치를 중단했습니다.

InstallUISequence 섹션과 적절한 위치에 사용자 지정 작업을 넣으면 모든 것이 잘 돌아갔습니다.

시도해 주셔서 감사합니다.

토니

-1

사용자 지정 작업을 실행해야하는 조건이 누락되었습니다. 당신이 다음 기본 당신이 당신의 로그 파일에 GetConfigProperties 사용자 지정 작업의 모든 항목이 표시되지 않는 경우에는 조건으로 <Custom Action="GetConfigProperties" After="FindRelatedProducts">1</Custom>

+2

아니요. 사실이 아닙니다. 조건을 생략하면 기본적으로 1입니다. –

2

1을 넣어 만들고 싶어 어느 몇 가지 조건을 제공 <Custom Action="GetConfigProperties" After="FindRelatedProducts">NOT INSTALLED AND NOT REMOVE</Custom> 또는, 가능성이 가장 높은 이유는 InstallExecuteSequence에서 요소 패키지에 포함되지 않은 별도의 Fragment에 상주합니다. Fragment의 내용을 패키지에 포함 시키려면 Product 요소 내부에서 Fragment의 모든 요소를 ​​참조해야합니다.

예를 들어, 제품 요소에 다음 줄을 추가 할 수 있습니다

<CustomActionRef Id="GetConfigProperties" /> 
관련 문제