2011-11-29 34 views
5

Şu anda yüklü olan diğer ürünlerde birkaç bağımlılığa sahip bir WIX Installer yazıyorum. Bu C# ve şu bağımlılıkları gerektirir (Excel/Word dahil) Büro 2010WIX Office Algılama Uzantısı

  • .NET Framework i söylemek wix içinde WixNetFxExtension kullanabilirsiniz .NET Framework Şimdi

3,5 ve ardından bu Özelliği bir Durumda referans olarak kullanabilirsiniz.

Word'de vb Ben bunu yapmak için Özel eylemler kullanabileceğini biliyor

gibi Office veya bireysel Files farklı sürümleri için bunu benzer bir uzantısı var mı, ama ben istiyorum basit doğrusu bunu idi Kendi Özel Eylemlerimi oluşturmama rağmen

+3

bu yazı bir göz http://stackoverflow.com/questions/3266675 ayırın/Ms-office-of-algılamak-yüklü-sürümü- – Ciprian

+1

Ben kullanabileceğimi wix bir uzantısı sonra gerçekten oldu. Şimdi bir uygulama isminde geçiş yapmanıza izin veren kendi eklentimi oluşturdum ve yüklenen sürümü döndürdüm ... Temizledikten sonra çözümümümü göndereceğim. –

cevap

-2

Bunun için kendi WIXExtension oluşturarak sona erdi ve ardından basitçe vb kelimenin sürümünün yüklü almak için Uzantımın yöntemi OfficeVersion ("Word") diyebiliriz. versiyon örneğin 10'dan fazla ise yalnızca uygulamayı yüklemek için

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

Sonra bir Koşul ayarlayabilirsiniz.

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

Daha sonra, içine gönderdiğim uygulamanın sürümünü iade etmek için OfficeVersion'umu yazmakta serbestim. Office uygulamaları,

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

vb bu bilgiyi tutan i keşfetti kayıt bir yer yoktur

+0

Uzantınızı herhangi bir yerde yayınladınız mı? Tüm el ile kayıt defteri hack önlemek için çok güzel olurdu. Teşekkürler! – BrainSlugs83

+0

Dünya ile paylaşmıyorsanız, bunu bir uzantı olarak yazmak için biraz fazla (mühendisliği yapılmış) bir şey. Tüm yükleyicileriniz tarafından yeniden kullanılan basit bir parça, dahili olarak yeterli olurdu. –

+0

Uzantınızı nerede bulabilirim? Bu cevap, uzantının nasıl çalıştığını bilmeden tamamen kullanılamaz. –

6

@Ciprian tarafından verilen yanıtı kullanarak, sadece bir özellik ayarlayabilir ve daha sonra özelliği temel alarak bir başlatma koşuluna sahip olabilirsiniz.

<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

Yanıt için teşekkürler, bilinen bir kayıt defteri anahtarı için sorgulama değil, bir uygulamanın yüklü geçerli sürümü getirdikten sonra gerçekten oldu. Bir uygulama adının geçmesine izin veren kendi wix uzantısını oluşturarak bunu çözdüm ve hangi sürümün yüklü olduğunu size bildiriyor –

+0

bu, tüm ofis sürümleri için işe yarıyor mu? –

+0

@JoeHealy See: http://stackoverflow.com/questions/3266675/how-to-detect-installed-version-of-ms-office 2016'ya kadar listeler –