문제

어떤 이유로, 우리는 자체 설치 GUI와 함께 제품을 제공하고 있습니다. 즉, MSI 설치를 자동으로 실행합니다.

MSI API "MSIinstallProduct"를 사용하면 제품을 조용히 설치할 수 있지만이 설치의 진행률 데이터를 어떻게 얻을 수 있는지, 어떻게 취소 할 수 있는지 모르겠습니다.

누구든지 아이디어가 있습니까?

도움이 되었습니까?

해결책

다음은 다음은 다음과 같이 언급하는 작업을 수행하는 것으로 보이는 샘플 프로젝트입니다.http://www.codeproject.com/kb/cs/msiinterop.aspx

다른 팁

2018 년 6 월 업데이트: 아래에 표시된 도구는 더 이상 다운로드 할 수는 없지만 Wayback Machine을 통해 찾았습니다. 도구가 프리웨어 인 것으로 보면서 링크하는 것이 괜찮고 합법적이라고 생각합니다. 아래에서 업데이트 된 링크.

업데이트: Wise 의이 도구는 유감스럽게도 더 이상 다운로드 할 수 없습니다. 배포해도 괜찮은지 확실하지 않습니다. 그것은 주요 현명한 패키지 스튜디오 스위트의 일부로 배포 된 무료 도구 인 것처럼 보였지만 오픈 소스라고 생각하지 않습니다. 나는 그들이 오픈 소스 도구로 출시되기를 바랍니다.

현명한 포장 제품은 여러 가지로 인해 중단되었습니다. 법적인 문제.


나는 당신이 MSI API를 통해 진행 상황을 얻을 수 있다고 생각하지만, 내가 당신이라면 나는 UND를 통해 설치를 호출 한 후 MSI 자체에서 진행률 표시 줄을 보여줄 것입니다. msiexec.exe.

MSI는 여러 가지 다른 설치 수준을 지원합니다 (완전, 완전히 침묵, 기본 GUI, 감소 된 GUI 등). 귀하의 경우 기본 UI를 원하는 것처럼 들립니다. 이것은 취소 버튼을 숨길 수있는 진행률 표시 줄을 생성하고 선택적으로 완료 모달 대화 상자를 표시합니다.

진행률 표시 줄, 취소 버튼 없음 및 끝에 모달 대화 상자가없는 상태에서 조용히 설치하십시오.

msiexec.exe /I "Test.msi" /QB-!

이러한 바보 같은 msiexec 명령 줄을 수동으로 구성하지 않으려면 MSI 명령 라인 빌더 도구 현명한 : http://www2.wise.com/filelib/wiclb.exe (웨이 백 머신에서 부활).

다운로드를 실행하십시오 virustotal.com 안전을 위해.

enter image description here


관련된:

MSIinstallProduct 전에 MSISETEXTERNALUI 또는 MSISETEXTERNALUERECORD를 사용하여 외부 UI 핸들러를 지정해야합니다 (후자는 더 좋지만 MSI 버전 요구 사항이 더 높음). 지정한 기능은 Windows Installer가 처리하기를 원하는 각 메시지에 대해 호출됩니다. 이렇게하면 데이터가 제공되며 응답 할 수있는 기회는 취소 할 수 있습니다. MSI 4.5 이상이 필요한 경우 부트 스트랩이 필요하지 않은 내장 외부 UI 핸들러 DLL을 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top