How To: OS のバージョンに基づいて インストールをブロックする

Windows Installer は、スタンダードな VersionNT プロパティを提供していて、ユーザーのオペレーティング システムのバージョンを 見つける為に使う事ができます。大抵、このプロパティを 非互換のオペレーティング システムでの アプリケーションのインストールを ブロックする為に使う事が 望ましい。以下のサンプルは、 Windows Vista/Windows Server 2008 より前のオペレーティング システムでのアプリケーションの インストールをブロックする為に どのように このプロパティを使用するかを デモンストレーションしています。

<Condition Message="This application is only supported on Windows Vista, Windows Server 2008, or higher.">
    <![CDATA[Installed OR (VersionNT >= 600)]]>
</Condition>

Installed は、チェックが、アプリケーションの 修復や削除ではなく インストールしている時にだけ なされることを保証する Windows Installer プロパティです。VersionNT の部分は、もし プロパティの値が Windows Vista に一致するバージョン、600 より大きいか等しいなら 通過し、インストールは 続行します。異なるバージョンの Windows オペレーティング システムの値は、 MSDN で利用可能です。

64-ビット バージョンの Windows に関して調べるには、 VersionNT64 プロパティを使って下さい。Windows NT より前のバージョンの Windows に 関して調べるには、 Windows9X プロパティを使って下さい。

 

( 訳注: 条件文でのプロパティの使用 ( Using Properties in Conditional Statements ) にある様に、Condition には9種類あります。これを WiX が書かれた場所に応じて 適切に振り分けます。 その中で、 LaunchCondition Table という所に行く Condition だけが 逆の記述に見えます。 LaunchCondition tableColumns@Condition に書いてある様に 「インストールが始まるためには True に評価されなければならない式」となっている所為です ( Expression that must evaluate to True for installation to begin. )。 注意して下さい。)

( 訳注: Windows Installer によってあらかじめ定義されている Property は プロパティ リファレンス ( Property Reference ) から探して下さい。演算子は、 条件文シンタックス ( Conditional Statement Syntax ) で確認して下さい。 )