5

以前のバージョンがすでにインストールされている場合にカスタムダイアログを表示するようにインストーラーをカスタマイズしたい:ウェルカムダイアログの後、ユーザーはOldVersionDlg以前のバージョンが見つかったという情報を含むカスタムダイアログを表示し、自動的にアンインストールされます。

しかし、何らかの理由で、で条件をチェックすると、UpgradeVersion常に要素によってプロパティが設定されます。nullUI/Publish Dialog

重要なコードスニペットは次のとおりです。

Product.wxs

<Product Id="*" Version="$(var.Version)" UpgradeCode="$(var.ProductId)"
         Language="1033" Name="$(var.ProductFullName)" Manufacturer="$(var.Manufacturer)">
  <Package Description="$(var.ProductDescription)" InstallerVersion="200" Compressed="yes" 
           Manufacturer="$(var.Manufacturer)" />

  <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
  <Upgrade Id="$(var.ProductId)">
    <UpgradeVersion Minimum="1.0.0.0" Maximum="$(var.Version)"
                    Property="PREVIOUSVERSIONSINSTALLED"
                    IncludeMinimum="yes" IncludeMaximum="no" />
  </Upgrade>

  <InstallExecuteSequence>
    <RemoveExistingProducts Before="InstallInitialize" />
  </InstallExecuteSequence>
</Product>

WixUI_Wizard.wxs

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="OldVersionDlg">PREVIOUSVERSIONSINSTALLED</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg">NOT Installed</Publish>

[次へ]ボタンが機能しません。PREVIOUSVERSIONSINSTALLEDの後に設定されたログをチェックインしましたFindRelatedProductsProduct.wxsの条件で使用すれば、すべて問題ありません。ただし、UI構成では常にnullです。

助けてくれてありがとう。

4

1 に答える 1

2

この問題は、WixUI_Wizard.wxsの2行目が原因で発生しました。何らかの理由でWiXは常にそれを使用します。PREVIOUSVERSIONSINSTALLEDしたがって、以前のバージョンのチェックを実装するには、2番目の条件から除外する必要があります。

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="OldVersionDlg">PREVIOUSVERSIONSINSTALLED</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg">NOT Installed AND NOT PREVIOUSVERSIONSINSTALLED</Publish>
于 2012-08-07T07:37:27.147 に答える