Windowsのインストーラを使ってプログラムをインストールする際に、下記のようなエラーメッセージが表示されてはじかれることがあります。
このオペレーティングシステムでは {製品名} を実行できません。
これはインストーラ内部の設定で、OSのバージョンをチェックして実行可否を決めているためです。
そんな時、インストーラの起動条件を変更して無理やり動かすという荒業が存在します。
もちろん、顧客に推奨する方法ではないですし、「起動条件ではじかれる理由が明白」な場合は止めたほうが無難ですが、画面のイメージや簡単な動作を確認したい場合には十分使えます。
前述したインストーラ内部の設定というのは、インストーラ自身にデータベースを保持しており、そこに設定値が格納されています。その設定値を直接編集できるツールが存在するというわけです。
Orcaの入手方法はdobon.netさんの記事が参考になりました。
Orcaの入手法
③左ペインにテーブル一覧が表示されるので、編集したいテーブルを選択
例)起動条件
⑤「Save」もしくは「Save As」で保存
上記の流れで編集したmsiファイルを保存できます。
出た事象ごとの対処方法を列挙していきます。
冒頭に書いたOSではじかれる場合の対処法。
インストーラ起動時に下記のエラーメッセージが表示されます。
このオペレーティングシステムでは {製品名} を実行できません。
変更するプロパティはOrcaでいうところの、LaunchCondition ⇒ Condition ⇒ VersionNTです。
例)Windows 8.1以上でインストール可能とする場合
VersionNT>=603
VersionNTとOSの対応表は、下記のサイトが参考になりました。
Windows Installer プロパティを使用した条件の設定
※Windows10、Windows Server 2016は表にありませんが、Windows 8.1と同じ603でした。
こちらはWeb Setup Projectでの事象です。
インストーラ起動時に下記のエラーメッセージが表示されます。
このセットアップは Internet Information Server 5.1かそれ以上を必要とし、加えてWindows XP 以降のバージョンを必要とします。このセットアップは Windows 2000 にインストールすることはできません。Internet Infomation Server またはより新しいバージョンのオペレーティング システムをインストールして、このセットアップをやり直してください。
変更するプロパティは、LaunchCondition ⇒ Condition ⇒ IISMAJORVERSIONです。
ちなみに、Web Setup Projectのデフォルトの設定だと、Windows10などのOSははじかれてしまいます。条件を見てみると、
(IISMAJORVERSION >= "#5" AND IISMINORVERSION >= "#1") OR IISMAJORVERSION >= "#6"
となっています。
IIS5.1以上、もしくはIIS6以上なら問題なさそうな記述に見えますが、Windows 10やWindows Server 2016ではIISのバージョンは「10.0」で構成されています。
文字列で比較しているせいか、バージョン10が6以上との判定になりません。対策として下記のように記述する必要があります。
(IISMAJORVERSION >= "#5" AND IISMINORVERSION >= "#1") OR IISMAJORVERSION >= "#6" OR IISMAJORVERSION >= "#10"
追加したのは、「IISMAJORVERSION >= “#10″」の部分です。IIS10以降もOKにするという記述です。
他にもあれば追記していきます。
Orcaはインストーラの設定値を変更できるのも便利ですし、WixToolsetやInstallShieldを使用してインストーラをカスタムしている場合の確認にも役立ちますので、一家に一台あっても損はしません。おすすめです。