wixでアップデートするバージョンを指定する

y-ozaki 216views 更新:2015年3月6日

ver1.2からはアップデートできるようにし、ver1.1からはアップデートできなくするようにしたい場合、 UpgradeVersionでそのバージョン範囲を指定することで可能です。

<Upgrade Id="UpgradeCode”>
            <UpgradeVersion OnlyDetect="no" Property="OLDFOUND" Minimum="1.2" IncludeMinimum="yes" Maximum="1.3" IncludeMaximum="no" />
            <UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="1.3" IncludeMinimum="yes" />
        </Upgrade>

UpgradeタグのIdにはProductタグで記載したUpgradeCodeを記載します。 このようにすることでPCに同一のUpgradeCodeを持つプロジェクトを検索し、そのバージョンがUpgradeVersionで指定した範囲であれば、OLDFOUNDまたはNEWERFOUNDにそのProductIdが保存されます。 OnlyDetectをnoにするとそのバージョンのプロジェクトはアンインストールするようになります。 その場合RemoveExistingProductsをInstallExecuteSequenceでスケジュールに入れる必要があります。

FindRelatedProductsで他のバージョンがあるかを検索するので、このアクションの後にOLDFOUNDを満たさなければエラーを返すカスタムアクションを追加すれば指定した範囲だけアップデートできます。

NEWERFOUNDのプロパティはこのアップデーターより新しいバージョンがあった場合に値がはいるので、 FindRelatedProductsの後にNEWERFOUNDを満たす場合にエラーを返すカスタムアクションを追加すればダウングレードを防ぐことが出来ます。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません