문제

MS SQL 공유 관리 객체 을 설치하는 PRQ가 있습니다. 이 레지스트리 키가 존재하지 않으면 PRQ를 설치하는 조건이 있습니다

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{08ECC740-2B3E-45D7-860C-59B511386286}
.

사용자가 다른 제품 코드가있는 SMO가 설치 될 때까지는 잘 작동합니다. 이는 SQL2008을 설치할 때 우리 dev 팀에 발생합니다. 설치 프로그램이 PRQ 시작이 오류가 있습니다.

나는 더 나은 상태가 필요합니다. 내가하고 싶은 일은 다음과 같습니다. if (버전 <= w.x.y.z || 버전 없음) 그런 다음 PRQ

를 설치하십시오 installShield 전제 조건 편집기

라고 표시됩니다

전제 조건이 실행되도록하기 위해 다음 조건을 충족해야합니다. 여기서 필수 조건이 할 수있는 파일과 레지스트리 키를 정의 할 수 있습니다. 실행 해야하는지 확인하십시오. No. 조건, 전제 조건은 항상 실행됩니다.

이것은 내 발견과 동의합니다 - 조건은 함께 있습니다. XML에 조건을 가하고 있거나 무효화 한 일부 미공개 소스가 있습니까? 레지스트리의 버전이 <내가 설치하는 것 인 경우 PRQ를 실행하려고하는 것이므로 지금은줍니다.

<conditions>
    <condition Type="32" Comparison="2" 
       Path="HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SharedManagementObjects\CurrentVersion" 
       FileName="Version" ReturnValue="10.1.2531.0">
    </condition>
</conditions>
.

type="32"는 '레지스트리 항목이 지정된 버전 값이 있습니다' 비교="2"는 '대상 시스템의 데이터가 지정된 데이터 미만'

입니다.

쪽 질문 : 유형과 비교가 열거되는 곳이 있습니까?

이 비교 유형은 대상 시스템의 '데이터가 지정된 데이터 보다 작거나 존재하지 않거나 존재하지 않거나 존재하지 않습니다 '에 대한 데이터 비교가 없습니다. 이제는 낮은 버전이 작동하는 경우 키가 작동하지만 키가 존재하지 않는 경우 (즉, SMO가 설치되지 않음) PRQ가 설치되지 않았습니다.

이 작업을 수행하는 방법이 있습니까? '특정 버전이있는 파일'조건은 파일의 버전이 위에 지정된 버전보다 작거나 대상 시스템에 파일을 찾을 수없는 경우에 있습니다. 그러나 SMO가 설치 한 파일을 확인하는 것은 작동하지 않습니다. 사용자는 C :.

이외의 드라이브에 설치했을 수 있습니다.

나는 뭔가를 놓치고 있습니다. 당신은 무엇을 할 것입니까?

도움이 되었습니까?

해결책

내가 일반적으로하는 것은 종속성을 감지하기 위해 ARP 항목과 같은 추상적 인 것을 사용하지 않습니다.나는 의존성 자체를 위해 간다.DLL이 필요하면 DLL을 설치 한 것을 탐지하는 대신 DLL이 있는지 확인하십시오.

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