ログイン
記事の一覧
4.<前の日

2016-01-20(Wed)

[]Visual Studio Installerにインストール環境条件をつける

Windows Storeアプリがメジャーになってきているこの昨今、レガシーなインストーラーアプリなんてのを頑張るのもしゃくなわけですが、Windows10 64bit以降のみの環境にスンストール可能なインストーラーを作りたい衝動に駆られ、調べてみたというマニアックなネタです。

 

1. Windows8.1とWindows10の問題

マイクロソフトさん、気が利かない。

GetVersionExやVerifyVersionInfoなんて関数があるわけなのですが、そこで取得されるバージョンは基本的にWindows8.1もWindows10もなんと同じなのです。以下、取得されるバージョン。(exeならマニフェストを変えると10.0と返ったりしますが……)

OSMajor.Minor
Windows 106.3 (10.0)
Windows 8.16.3
Windows Server 2012 R26.3
Windows 86.2
Windows Server 20126.2
Windows 76.1

なもんで、結論、レジストリを使います。

キー:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentMajorVersionNumber

ここにWindowsのメジャーバージョンである10と書かれています。

詐称する人のことなんて知りません。

2. インストーラーの起動条件を設定する

今回はVisual Studio 2015のセットアッププロジェクトを使用しています。

起動条件の「Search Target Machine」右クリックで「レジストリ検索の追加」を行い、新しくできたオブジェクトのプロパティを編集します。

(Name)OSCurrentMajorVersionNumber
PropertyOSMAJORVERSION
RegKeySOFTWARE\Microsoft\Windows NT\CurrentVersion
RootvsdrrHKLM
ValueCurrentMajorVersionNumber

これで「OSMAJORVERSION」にメジャーバージョンが入力されます。

次に、「Launch Conditions」右クリックで「起動条件の追加」を行い、プロパティを編集します。

(Name)CheckWin10_64bit
Condition(VersionNT64>=603) AND (OSMAJORVERSION>="#10")
InstallUrl
MessageこのアプリケーションはWindows 10 (64bit) 以降で動作します。

Conditionの項目は「Windows8.1以降かWindows10以降の64bit OS」かつ「メジャーバージョンが10以上」をあらわしており、つまり「Windows 10 64bit以上」を示す条件となります。

「InstallUrl」は条件がFalseのときに表示するURLとなります。

 

びしっ。

4.<前の日
●ウェブ検索●