[WiX] WiXで.NET Frameworkをチェックする

インストーラーの起動条件(launch condition)でOS versionや.NET Frameworkをチェックする必要があるときの手順メモ。
OSはVersionNTなどのプロパティを使って判定する。
OSプロパティの一覧についてのMSDNは以下にある。
http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#operating_system_properties

.NETはOSと異なる判定方法をとる。拡張dllをリンクした上でプロパティを参照する。
方法はWiXのhelpファイルのHow To: Check for .NET Framework Versionsにあるとおり。
オンラインドキュメントは以下にある。
http://wix.sourceforge.net/manual-wix3/check_for_dotnet.htm

Condition エレメントを使って判定条件を設定する。

<Condition Message="This application requires .NET Framework 2.0. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR NETFRAMEWORK20]]>
</Condition>

不便なのは数値比較ができないことで、文字列比較で条件を並列に記載する。
msiのLaunch Conditionテーブルのすべてを満たした場合にインストーラーが起動する。
OR式の評価はCなどと同じ、左から評価し、真になった条件より右は評価しない。
これを利用すると、

Installed OR NOT NETFRAMEWORK35 OR (NETFRAMEWORK35_SP_LEVEL AND NETFRAMEWORK35_SP_LEVEL = "#1")

のような条件を作ることができる。 ここでは、インストール起動条件に3.5 SP1を追加した。
プロパティの一覧はhelpファイルで見ることができる。
オンラインドキュメントは以下にある。
http://wix.sourceforge.net/manual-wix3/wixnetfxextension.htm

 

広告
%d人のブロガーが「いいね」をつけました。