2011-05-16 1 views
2

IExpress를 사용하여 부트 스트 래퍼와 msi 파일을 결합합니다. 전제 조건 (.net 4, sql ce)없이 컴퓨터에 프로그램을 설치하면 정상적으로 작동하지만 실패합니다. 재부팅 후에는 .net 4 프레임 워크를 설치 한 후에 항상 실패합니다. 이에 나를 지적하는 오류 로그에서, 그것이 제대로 설치 실패 후 설치를 다시 시작재부팅 후 IExpress에서 msi를 찾을 수 없습니다.

Error: Unable to locate application file

의 라인을 따라 메시지를 제공하지만이이 프로젝트에 대한 수용 가능한 해결책이 아니다. 누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 다른 설명이 필요한 경우 알려주십시오. 감사.

+1

재부팅하면 RunOnce 키에 아무 것도 기록되지 않습니까? 이것은 일반적으로 재부팅 후 실행해야하는 프로그램을 시작하는 데 사용되는 메커니즘입니다. 실행하려는 파일이 재부팅 중에 지워질 수있는 임시 폴더에 숨겨져있을 가능성이 있습니다. 재부팅이 발생하기 전에 RunOnce 키가 가리키는 위치를 확인한 다음 재부팅 후이 경로가 여전히 유효한지 확인하십시오. –

답변

1

스티븐의 말이 맞다. IExpress SFX가 종료 되 자마자 추출을 위해 사용하는 임시 디렉터리가 삭제됩니다 (%temp%\IXP000.TMP 행을 따라). 재부팅 후 MSI가 사라졌습니다.

설치 프로그램 파일을 유지하려면 먼저 모든 것을 다른 디렉토리에 복사해야합니다. 배치 파일을 실행할 수 있습니다 (예 : 설치 프로그램 명령을 cmd /c persist.bat과 같은 것으로 설정). 그러면 persist.bat은 다음과 같이 표시됩니다.

@echo off 
xcopy /y * "%temp%\myproject\" 
msiexec /q /i "%temp%\myproject\install.msi" /l*v "%temp%\myproject_install.log"