2011-11-29 2 views
5

현재 다른 제품과의 종속성이있는 WIX Installer를 작성 중입니다. 그것은 C#으로하고 다음 종속성을 필요로 (엑셀/워드 포함) 오피스 2010WIX Office Detection Extension

  • .NET 프레임 워크 내가 말을 윅스에서 WixNetFxExtension를 사용할 수있는 .NET 프레임 워크에 대한 지금

3.5

<PropertyRef Id="NETFRAMEWORK35_SP_LEVEL"/> 

다음 조건에서이 속성을 참조하십시오.

워드 등 내가이 작업을 수행하는 사용자 지정 작업을 사용할 수 있습니다 알고

같은 사무실 또는 개별 파일의 다른 버전이 작업을 수행 할 수있는 유사한 확장이 있지만, 내가 원하는 간단한 오히려이 일을했다 내 자신의 커스텀 액션을 만드는 것보다?

+3

이 게시물을 살펴 http://stackoverflow.com/questions/3266675를하시기 바랍니다/how-to-detect-installed-version-of-ms-office – Ciprian

+1

나는 내가 사용할 수있는 wix 확장자를 실제로 사용했다. 나는 실제로 당신이 응용 프로그램 이름을 전달할 수있는 내 자신의 확장 기능을 만들었습니다 그리고 그것은 설치된 버전을 반환합니다 ... 일단 내가 그것을 정리 한 내 솔루션을 게시합니다. –

답변

-2

나는 이것에 대한 내 자신의 WIXExtension을 만들어 결국 다음 단순히 등 단어의 버전 설치를 얻기 위해 내 확장 방법 OfficeVersion ("말씀")를 호출 할 수있다.

<Property Id="WORD_VERSION" Value="$(myextension.OfficeVersion(Word))" /> 

예를 들어 버전이 10보다 큰 경우 응용 프로그램 만 설치하도록 조건을 설정할 수 있습니다.

<Condition Message="This setup requires Word xxxx and Excel xxxx or greater"> 
    <![CDATA[Installed OR (WORD_VERSION AND EXCEL_VERSION >= "10")]]> 
</Condition> 

그럼 OfficeVersion을 작성하여 보내려는 응용 프로그램의 버전을 반환 할 수 있습니다. 즉 Office 응용 프로그램

HKLM\Software\Classes\Word.Application\CurVer 
HKLM\Software\Classes\Excel.Application\CurVer 

등이 정보를 보유하고 내가 발견 레지스트리에있는 장소가있다

+0

확장 프로그램을 어디서나 게시 했습니까? 모든 수동 레지스트리 해킹을 피하는 것은 정말 멋지다. 감사! – BrainSlugs83

+0

세계와 공유하지 않는 경우 확장자로 작성하는 것이 약간 과장되었습니다. 모든 설치 관리자가 내부적으로 다시 사용하는 간단한 조각은 충분합니다. –

+0

확장 기능은 어디에서 찾을 수 있습니까? 이 답변은 확장 기능의 작동 방식을 알지 못하면 완전히 사용할 수 없습니다. –

6

@Ciprian에서 주어진 대답을 사용하면 간단히 속성을 설정 한 다음 속성을 기반으로 시작 조건을 설정할 수 있습니다.

<Property Id="OFFICEPATH"> 
    <RegistrySearch Id="OfficeReg" Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" Name="Path" Type="raw" /> 
</Property> 

<Condition Message="This application requires Microsoft Office. Please install Office then run this installer again."> 
     <![CDATA[Installed OR (OFFICEPATH)]]> 
    </Condition> 
+1

답변을 주셔서 감사합니다. 저는 현재 알려진 버전의 레지스트리 키를 쿼리하지 않고 응용 프로그램의 현재 버전을 가져온 후에 실제로했습니다. 응용 프로그램 이름을 전달할 수있는 내 자신의 wix 확장을 작성하여이 문제를 해결했으며 설치된 버전이 무엇인지 알려줍니다 –

+0

모든 버전의 Office에서이 작업을 수행합니까? –

+0

@JoeHealy 참고 : http://stackoverflow.com/questions/3266675/how-to-detect-installed-version-of-ms-office 최대 2016까지 나열 –