.net

【Orca】既存のインストーラ(msi)の起動条件を変更する方法

Windowsのインストーラを使ってプログラムをインストールする際に、下記のようなエラーメッセージが表示されてはじかれることがあります。

このオペレーティングシステムでは {製品名} を実行できません。

これはインストーラ内部の設定で、OSのバージョンをチェックして実行可否を決めているためです。
そんな時、インストーラの起動条件を変更して無理やり動かすという荒業が存在します。
もちろん、顧客に推奨する方法ではないですし、「起動条件ではじかれる理由が明白」な場合は止めたほうが無難ですが、画面のイメージや簡単な動作を確認したい場合には十分使えます。


使用するもの

前述したインストーラ内部の設定というのは、インストーラ自身にデータベースを保持しており、そこに設定値が格納されています。その設定値を直接編集できるツールが存在するというわけです。

Orca 

Orcaの入手方法はdobon.netさんの記事が参考になりました。
Orcaの入手法 


Orcaの使い方

①Orcaを起動します。
Orcaを起動

②File ⇒ Open ⇒ 編集したいインストーラを選択
File,Open

③左ペインにテーブル一覧が表示されるので、編集したいテーブルを選択
例)起動条件
変更したいプロパティがあるテーブルを選択

④右ペインで項目を直接変更する
値を変更

⑤「Save」もしくは「Save As」で保存

上記の流れで編集したmsiファイルを保存できます。


事象と対策

出た事象ごとの対処方法を列挙していきます。

OSのバージョン不一致

VersionNTエラーメッセージ

冒頭に書いたOSではじかれる場合の対処法。
インストーラ起動時に下記のエラーメッセージが表示されます。

このオペレーティングシステムでは {製品名} を実行できません。

変更するプロパティはOrcaでいうところの、LaunchCondition ⇒ Condition ⇒ VersionNTです。
例)Windows 8.1以上でインストール可能とする場合

VersionNT>=603

VersionNTとOSの対応表は、下記のサイトが参考になりました。
Windows Installer プロパティを使用した条件の設定

※Windows10、Windows Server 2016は表にありませんが、Windows 8.1と同じ603でした。

IISのバージョン不一致

IISエラーメッセージ

こちらは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を使用してインストーラをカスタムしている場合の確認にも役立ちますので、一家に一台あっても損はしません。おすすめです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です