2012-05-16 4 views
2

저는 응용 프로그램에 대한 설치 프로그램을 가지고 있습니다.이 응용 프로그램에는 일부 사용자 지정 기능을 사용합니다. 설치시 데이터베이스 호스트를 확인하기 위해 DBHOST 등과 같은 일부 사용자 지정 MSI 속성을 사용했습니다.제거 할 때 MSI 속성 값을 검색하려면 어떻게해야합니까?

그리고이 기본값은 localhost입니다.

하지만이 DBHOST 속성은 설치시 명령 줄을 통해 다른 값 (예 : 192.168.1.3)으로 설정했습니다. 명령 줄을 통해 설정된 속성으로 설치가 제대로 수행되었습니다.

내가 제거 시간 동안 실행되도록되어있는 customation에

MsiGetProperty 

기능을 사용하는 경우, 나는 기본값 (로컬 호스트) 대신 내가 커맨드 동안 설치를 통해 설정 한 값을 가지고 (192.168.1.3)

누구든지이 문제를 해결할 수 있습니까? 왜 이런 일이 일어 났습니까? 제거 할 때 MSI 속성에 대해 동일한 값을 얻으려면 다른 작업이 필요합니까? 사전에

감사합니다 ...

답변

5

프로퍼티 값이 제거에 그것은 설치하는 동안 한 마지막 값을 기억하지 않으며 그것의 기본 하나를 사용한다는 것을 의미, 지속되지 않습니다. 가장 쉽고 쉬운 솔루션은이 값을 레지스트리 항목에 쓰고 레지스트리 검색을 사용하여 제거하는 동안 검색하는 것입니다.

+0

그러나 우리는 설치 시간에 설정 한 사용자 정의 값으로 INSTALLDIR과 같은 일부 속성의 정확한 값을 얻습니다. 레지스트리 검색과 동일한 방식으로 수행됩니까? – JijeshKV

+0

설치 폴더에 연결된 속성은 패키지의 구성 요소에 연결되어 있기 때문에 Windows Installer에 의해 저장됩니다. DBHOST와 같은 독립 실행 형 속성의 경우 Windows Installer는 캐시 메커니즘을 제공하지 않으므로 유지 관리 중에 설치 값을 사용하는 유일한 방법은 레지스트리 값인 가장 쉬운 위치를 저장하고 패키지가있을 때 레지스트리 검색을 사용하여 검색하는 것입니다 다시 시작했습니다. –

+0

어딘가에 MSI 엔진이 캐싱하는 MSI 속성을 정확히 볼 수 있으므로 시간을 낭비하지 않아도됩니다. IS_SQLSERVER가 캐쉬되어 있는지 아닌지를 판단 할 수 없기 때문에 InstallShield MSI 프로퍼티에 대해서도 유사한 리소스가 존재한다면 좋을 것입니다. –

0

DBHOST에 대해 언급 했으므로 InstallShield의 원시 SQL 스크립트 기능을 사용하면 인프라에서 사용자 지정 작업을 미리 작성하여 SQL 연결에 필요한 속성을 유지 관리하여 이후에 수리, 사소한 업그레이드 및 제거 중에 사용할 수 있습니다.

기본 속성 이름은 IS_SQLSERVER_SERVER입니다.

사실, DBHOST는 꽤 순진하지만 일부 영구 데이터 (예 : IS_SQLSERVER_USERNAME 및 IS_SQLSERVER_PASSWORD)는 중요하며 암호화, 암호 해독해야합니다. InstallShield는이 작업을 자동으로 수행합니다. 보안이 사용자의 요구에 충분히 강한 지 여부는 검토 할 때까지 결정해야합니다.

+0

설명서에 어딘가에 installshield 속성 자체가 어떤 속성을 유지하는지 알 수 있습니까? –