2017-01-10 1 views
0

초기화 작업을 수행하기 위해 설치 후 일부 매개 변수를 사용하여 소프트웨어를 설치하려고합니다. 첫 번째 설치 후 업그레이드가 아닌 사용자 지정 작업을 시작하려고합니다.Wix가 처음 설치 한 후 설치된 소프트웨어를 시작한 후 업그레이드하지 않습니다.

다음 코드는 첫 번째 설치 및 업그레이드 후에 custum 작업을 시작합니다.

<CustomAction Id="MyAction" 
    Directory="TARGETDIR" 
    ExeCommand="[INSTALL_ROOT]MySoft.exe myarg" 
    Execute="immediate" 
    Return="ignore" 
    Impersonate="yes" /> 
<InstallExecuteSequence> 
    <Custom Action="MyAction" After='InstallFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom> 
</InstallExecuteSequence> 

무엇이 문제입니까?

답변

2

MSI를 실행하고 msiexec/I [path to msi]/l * vx [로그 파일 경로]로 로그를 만들고 사용자 지정 동작이 호출되고 로그에서 로그에 대한 내용을 확인하십시오.

상승 된 권한이 필요하기 때문에 프로그램이 시작되고 중단 되셨습니까? 아마도 설치 프로그램이 잘못되었다고 가정하고 있습니다. 아마도 프로그램 실행 결과가 보이지 않을 것이기 때문에 추측하면 어떻게 알 수 있습니까? 로그는 실행하려고했는지 여부를 알려주고 return = ignore는 설치가 실패하더라도 계속 수행됨을 의미합니다.

"업그레이드 후"는 이것이 업그레이드 MSI임을 의미하고 업그레이드가 진행 중일 때 UPGRADINGPRODUCTCODE가 설정 되었기 때문에 사용자의 조건이 잘못되었습니다. 업그레이드가 아닌 경우입니다. 이것이 업그레이드 설치 인 경우 조건으로 WIX_UPGRADE_DETECTED가 필요합니다.

+0

Thx! WIX_UPGRADE_DETECTED는 내가 필요한 것입니다. 그리고 로그에 대한 힌트는 고맙습니다. 디버깅에 매우 유용합니다. 이 [다른 게시물] (http://stackoverflow.com/questions/18531272/how-do-i-distinguish-between-a-normal-install-and-an-upgrade-in-wix)도 매우 유용합니다. 다른 시나리오. – skuallpa

관련 문제