InstallShield 2015 Basic MSI로 설치 프로그램을 만들었습니다.
이 설치 프로그램에서 사용자가 클라이언트 또는 서버를 설치할지 여부를 선택할 수 있다고 가정하면 각 설치 유형 (클라이언트 또는 서버)마다 을 설치할 수있는 몇 가지 기능이 있습니다.
이제 클라이언트 설치를 선택하고 그 아래에 두 개의 기능, 을 포함시킵니다. UI로 설정을 다시 실행하면 유지 관리 모드로 들어가 클라이언트에 더 많은 기능을 추가 할 수 있습니다.InstallShield 명령 줄에서 동일한 MSI를 두 번 설치하는 것을 차단합니다.
내 문제는 명령 줄 (msiexec/I)에서 동일한 설치 프로그램을 다시 실행하고 서버 설치 유형을 설치하려고 할 때 현재 설치가이를 차단하거나 막지 않아 클라이언트 설치가 손상 될 수 있다는 것입니다. 이미 설치되었습니다.
그래서 현재 설정이 설치되어 있는지 확인하고 사용자가 명령 줄에서 실행하려고 시도하고있는 것을 확인하고 차단하지 않으면 (여전히 명령 줄에서 제거 실행을 지원해야하는 CA를 작성해야합니다.).
이 논리가 맞습니까? 명령 줄에서 명령 사용자가 무엇인지 어떻게 알 수 있습니까? 그는 msiexec/I을 실행하고 명령 줄에서 제거하려고하지 않음을 의미합니다.
동일한 MSI를 명령 줄에서 두 번 설치하지 못하도록 InstallShield \ MSI 빌드 방식으로 \ 속성에 포함되어 있는지 궁금합니다.
서버 및 클라이언트 기능을 UI와 명령 줄에서 상호 배타적으로 사용 하시겠습니까? –
올바른지, 사용자가 UI에서 클라이언트 또는 서버를 설치할 수 있습니다. 둘 다 설치하는 것을 막을 수는 있지만 명령 줄에서 실행되지는 않습니다. 사용자가 명령 줄에서 실행중인 작업을 확인하는 방법을 모르겠습니다. 그렇지 않습니다. – Epligam
사용자가 두 개의 충돌하는 기능을 설치하도록 요청했거나 사용자가 설치되어있는 다른 기능과 충돌하는 한 가지 기능을 설치하도록 요청한 경우 설치를 차단하는 유형 19 오류 사용자 지정 작업을 작성했습니다. 조건부 표현식에 기능 요청 및 설치된 상태 연산자를 사용하고 CostFinalize 후에 일정을 예약하십시오. –