2011-09-27 59 views
0

我有一個自定義控件,如下所示。wix IIS版本在卸載狀態下失敗

在卸載過程中,檢查IIS_MAJOR_VERSION =「#7」AND IIS_MINOR_VERSION =「#5」的條件似乎失敗,儘管在安裝過程中此條件爲真。

我沒有在卸載文件中檢查IIS_MAJOR_VERSION =「#7」AND IIS_MINOR_VERSION =「#5」的屬性。有誰知道我做錯了什麼?

<Property Id="IIS_MAJOR_VERSION"> 
    <RegistrySearch Id="CheckIISVersion" 
        Root="HKLM" 
        Key="SOFTWARE\Microsoft\InetStp" 
        Name="MajorVersion" 
        Type="raw" /> 
</Property> 
<Property Id="IIS_MINOR_VERSION"> 
    <RegistrySearch Id="CheckIISMinorVersion" 
        Root="HKLM" 
        Key="SOFTWARE\Microsoft\InetStp" 
        Name="MinorVersion" 
        Type="raw" /> 

<Custom Action="DropDBUSerIIS75" Before="InstallFinalize">Installed AND NOT UPGRADINGPRODUCTCODE AND IIS_MAJOR_VERSION="#7" AND IIS_MINOR_VERSION="#5"</Custom> 
+0

這是很難說什麼是錯的樣品中,但我仍然建議您使用IIsExtension的預定義的屬性:'IISMAJORVERSION'和'IISMINORVERSION'而不是定義你的...只要使用'PropertyRef'元素引用這些屬性,並在之後的任何情況下使用 –

回答

0

即使我不知道它爲什麼會錯了代碼,但對於預防使用此代碼來獲得的IIS版本的價值,因爲即使IIS是未安裝在上面的註冊表項值將持續存在。

<Property Id="IIS_MAJOR_VERSION"> 
    <RegistrySearch Id="CheckIISVersion" 
        Root="HKLM" 
        Key="SYSTEM\CurrentControlSet\services\W3SVC\Parameters" 
        Name="MajorVersion" 
        Type="raw" /> 
</Property> 
<Property Id="IIS_MINOR_VERSION"> 
    <RegistrySearch Id="CheckIISMinorVersion" 
        Root="HKLM" 
        Key="SYSTEM\CurrentControlSet\services\W3SVC\Parameters" 
        Name="MinorVersion" 
        Type="raw" />