1

에서 사용자 지정 작업의 실패를 디버깅하는 방법, 나는 XmlPreprocess.exe (A CodePlex의 유틸리티)MSI는/설치 프로젝트 사용자 지정 작업에 대한

및 인수에에 이름을 설정 해요 :/X : "[ SETTINGSFILE] "/i:"[TARGETDIR]web.config"/ E : [ENVIRONMENTBUTTON]> [TARGETDIR] XmlPreProcess.log

SETTINGSFILE는 사용자 지정 양식 I 추가 페이지 및 ENVIRONMENTBUTTON에서 오는하도록되어 [CUSTOMSETTINGS] 내 라디오 버튼 중 하나의 값입니다.

리디렉션을 사용할 수있는 방법이 있습니까? 그것은 .log 파일을 생성하지 않습니다. 다른 방법으로 사용자 지정 작업의 결과를 볼 수 있습니까? 어떻게 실행되었는지 확인할 수 있습니까? 만약 parms가 그것에 보내어 졌는지보고 싶다면?

업데이트 3 : - 나는 시도 것을 더 시나리오를 보려면 여기를 참조하십시오 http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId=79454

감사합니다,

업데이트 : 난 그냥 내 PARMS을 확인하기 위해 급히 VBScript를 썼다 .

dim fso, oFile 
set fso = Createobject("Scripting.FileSystemObject") 
set oFile = fso.CreateTextFile("VBScriptOut.txt") 

if WScript.Arguments.Count < 2 then 
    oFile.Writeline("Number of arguments was only = " & WScript.Arguments.Count) 
else 
    oFile.WriteLine("SETTINGSFILE=" & WScript.Arguments.Item(0)) 
    oFile.WriteLine("ENVIRONMENTBUTTON=" & WScript.Arguments.Item(1)) 
end if 

oFile.close 

없음 VBScriptout.txt가 만든, 그래서 나는 (나의 추측이다 XmlPreprocess도 중 실행되지 않음)가도 도망 생각하지 않습니다.

"설치"에서 사용자 지정 작업으로 InstalLVerification.vbs 파일을 포함 시켰습니다. 속성 창에서 조건 = True로 설정했습니다. CustomActionData를 다음과 같이 설정했습니다. "[SETTINGSFILE]"[ENVIRONMENTBUTTON]

업데이트 2 : 이제 상태가 "참"이되어서는 안됩니다. 내가 비우거나 "Not Installed"로 설정합니다.

XmlPreprocess에서 설명 할 수없는 오류가 발생하여 VBScript를 실행할 수 없습니다. CScript64.exe로도 실행 해 보았습니다.

답변

1

출력 프롬프트 리디렉션을 나타 내기 위해 명령 프롬프트 (및 경우에 따라 다른 도구) 만 큼 기호를 사용합니다. Windows Installer는이 기호를 처리하지 않는 Win32 CreateProcess API를 호출합니다. 따라서 결과를 기록하려는 시도가 작동하지 않습니다. 아마도 명령을 cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log (일부 추가 인용이 필요할 수 있음)으로 다시 쓸 수 있습니다.

디버깅을 위해 일반적으로 설치 프로세스의 자세한 로그를 작성하여 더 많은 정보를 얻을 수 있습니다. 여기에는 속성 목록과 시작된 사용자 지정 동작 및 반환 코드 목록이 포함됩니다. 귀하의 경우에는 응용 프로그램에 전달 된 완전히 형식화 된 명령 줄까지 포함될 것입니다.

업데이트 2에서 말한 것처럼 True의 조건은 실제로 이름이 True 인 지 여부를 조회하는 것을 의미합니다. 항상 사실 인 것을 원하면 1 값을 사용하십시오.

+1

큰 감사 - 로그를 켰다는 것을 몰랐습니다. 방법은 다음과 같습니다. http://www.advancedinstaller.com/user-guide/qa-log.html – NealWalters

+0

새 질문이 표시됩니다. http://stackoverflow.com/questions/2007635/making-sense-out-on-msi- verbose-trace-running-a-customaction – NealWalters

+0

cmd.exe로 새로 시작하십시오. http://stackoverflow.com/questions/2050184/using-cmd-exe-in-a-vs-setup-custom-action – NealWalters

관련 문제