2011-08-26 5 views
1

SCCM 2012가 설치되어 있는지 감지하기 위해 Wix C++ 사용자 지정 동작을 작성했습니다. 레지스트리에서 제품 GUID를 읽음으로써이 작업을 수행하고 있습니다. SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\SCCM 2012가 설치되어 있는지 확인하는 방법은 무엇입니까?

그러나 SCCM 2012가 설치된 시스템에서는 레지스트리에 이러한 정보가 없었기 때문에 작동하지 않았습니다.

아무에게도 이것을 달성하기 위해 올바른 방향으로 나를 가르쳐 주시겠습니까?

SCCM 2012가 설치된 경우에만 소프트웨어를 설치하고 싶습니다.

답변

2

이 경우 Condition 요소를 사용해야합니다. 제품 또는 단편 아래에 놓으면 시작 조건으로 작동합니다. 발사 조건에 대한 자세한 내용은 here을 참조하십시오.

이 조건을 작성하면 속성을 확인할 수 있습니다. 찾고있는 소프트웨어가 설치되어 있으면 속성을 설정하고, 그렇지 않은 경우 가장 간단한 경우입니다. 이를 달성하려면 RegistrySearch 요소를 작성하십시오.이 요소는 적절한 레지스트리 경로가있는 경우 속성을 정의합니다. RegistrySearch 요소는 Property 요소의 하위 여야합니다.

사용자가 볼 수있는 것처럼 여기에는 맞춤 동작이 없습니다. :)

+0

감사합니다. 그것은 매우 도움이되었다 – Mark

2

소프트웨어 검색을 위해 문서화되지 않은 내부 구조에 의지해서는 안됩니다. 경고없이 변경할 수 있습니다. 예를 들어 업그레이드하는 동안 제품 코드 GUID가 변경되므로 SCCM 팀이 변경하지 않는다고 말하면 SCCM 2012 RTM 및 2012 업데이트에 대해서도 변경 될 수 있습니다.

대신 팀에 그것을 탐지하는 방법을 문서화했다. 대부분의 팀은 설치된 버전과 같은 것을 탐지하기위한 레지스트리 값을 문서화합니다. 만약 그렇지 않다면, 가치가 없어 질 가능성이 적으므로 레지스트리를 보는 것이 더 나을 것입니다.

+0

덕분에 많이 :) – Mark

관련 문제