2013-03-27 4 views
2

msi의 경우 기존 릴리스에서 allusers 속성을 언급하지 않았습니다. 그래서 기본적으로 그것은 사용자 당으로 갔다.사용자 단위에서 모든 사용자 단위로 변경하는 방법은 무엇입니까?

고객이 관리자 ID를 사용하여 애플리케이션을 설치했으며 관리자가 회사를 퇴사했습니다. 따라서 그의 사용자 ID는 더 이상 유효하지 않습니다.

이제 다른 관리자 계정을 사용하여 새 버전으로 마이그레이션 할 수 없습니다 (사용자 당 설치됨).

모든 사용자를 지원하도록 msi를 변경할 수 있지만 마이그레이션 (주요 업그레이드)에서는 작동하지 않습니다.

기존 릴리스가 지원되지 않는 총 새 릴리스를 제공 할 때만 문제가 해결 될 수있는 것처럼 보입니다.

이전 msi가 사용자 일 경우에도 언급 할만한 다른 해결책이 있습니까? 지금 업그레이드해야합니다.

우리는 설치 과정에서 WIX 3.5를 사용하고 있습니다.

답변

3

불행히도 Windows 설치 프로그램은 "여러 컨텍스트"업그레이드를 지원하지 않습니다. 시스템 당 패키지는 사용자 별 패키지를 업그레이드 할 수 없으며 사용자 별 패키지는 시스템 별 패키지를 업그레이드 할 수 없습니다.

이전 .msi를 찾아 실행 파일을 작성하고 ::MsiEnumRelatedProducts() 같은 API를 사용하여 제거한 다음 제품을 찾으려면 ::MsiConfigureProduct()을 제거 할 수 있습니다. 그러나 사용자 계정이 없으면 사용자 별 설치 제품을 볼 수 있는지 확신 할 수 없습니다.

+0

Installshield에는 기계 별 설치로 전환 할 수 있도록 비트를 약간 조정할 수있는 기능이 있습니다. ISSetAllUsers 사용자 지정 동작이 관련되어 있습니다. http://stackoverflow.com/questions/12110987/windows-installer-uninstalling-previous-version-when-the-versions-differ-in-in/12291807#12291807 –