2016-04-07 9 views
0

Ich benutze wix vor kurzem und ich möchte erkennen, ob Büro installiert ist oder nicht mit wix & zeigen Sie einen Dialog, wenn es nicht ist. Ich schrieb den folgenden Code und es zeigt nicht den Dialog. Irgendwelche Ideen?Wie erkennt man, ob das Büro installiert ist oder nicht & den Benutzer mit Wix benachrichtigen?

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" > 
    <Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="f91c0ad9-0bbd-446d-9869-74801966e922">  
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 
    </Product> 

    <Fragment> 
    <util:RegistrySearch Id="Path" 
      Variable="OfficeSearchResult" 
      Root="HKLM" 
      Key="SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" 
      /> 

    <InstallUISequence> 
     <Show Dialog="OfficeWarningDlg" After="ExecuteAction"> 
     <![CDATA[(OfficeSearchResult == "")]]> 
     </Show> 
    </InstallUISequence> 

    <UI> 
     <Dialog Id="OfficeWarningDlg" Width="284" Height="73" Title="QuickTime Note" NoMinimize="yes"> 
     <Control Id="ctrl_dialog" Type="Text" X="38" Y="8" Width="240" Height="40" TabSkip="no"> 
      <Text>Microsoft office is required.</Text> 
     </Control> 
     <Control Id="OK" Type="PushButton" X="114" Y="52" Width="56" Height="17" Default="yes" Cancel="yes" Text="OK"> 
      <Publish Event="EndDialog" Value="Return">1</Publish> 
     </Control> 
     </Dialog>  
    </UI> 
    </Fragment> 
</Wix> 

Antwort

1

Könnten Sie nicht ein <Condition> Element benutzen, die einen kleinen Dialog zeigen (und die Installation abbrechen), wenn seine Bedingung nicht erfüllt ist? Dann könnten Sie die /InstallUISequence Sachen in Ihrem Beispiel axen.

<Wix ...> 
    <Product ...> 
    <Package ... /> 

    <Property Id="OFFICEISINSTALLED"> 
     <RegistrySearch Id="OfficeRegistryRegKey" 
     Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" /> 
    </Property> 

    <Condition Message="Microsoft office is required to install this product"> 
     <![CDATA[Installed OR OFFICEISINSTALLED]]> 
    </Condition> 

    </Product> 
</Wix> 
Verwandte Themen