Comments
Description
Transcript
InstallShield 実践トレーニング
ple InstallShield 実践トレーニング Sa m ~ InstallShield 2015 ~ 目次 第1章 ターゲットシステムの環境に適したインストーラーを作成する ............................................................................. 3 1.1 Windows Installer での条件設定 ............................................................................................................................. 4 1.1.1 Windows Installer のプロパティ ....................................................................................................................... 4 1.1.2 条件の形式 ........................................................................................................................................................ 5 1.2 インストール要件とシステム検索 ........................................................................................................................... 6 1.2.1 インストール要件.............................................................................................................................................. 6 1.2.2 システム検索 ..................................................................................................................................................... 6 1.3 多言語対応のインストーラー ................................................................................................................................ 10 1.3.1 多言語インストーラー .................................................................................................................................... 10 1.3.2 多言語インストーラーの作成 ...........................................................................................................................11 1.3.3 ローカライズ ................................................................................................................................................... 14 1.4 1.4.1 1.4.2 64bit オペレーティングシステムをターゲットにする ........................................................................................... 18 32bit アプリケーションと 64bit アプリケーション....................................................................................... 18 64bit アプリケーションのインストール .......................................................................................................... 18 第2章 インストール中に実行する カスタマイズ処理を実装する .................................................................................... 23 2.1 カスタムアクション............................................................................................................................................... 24 インストールシーケンスとアクション ........................................................................................................... 24 2.1.2 様々なカスタムアクション ............................................................................................................................. 29 2.2 2.2.1 ple 2.1.1 テキストベースのファイルの編集 ......................................................................................................................... 35 テキストファイルの変更 ................................................................................................................................. 35 ユーザーインターフェイスをカスタマイズする .................................................................................................... 39 3.1 ダイアログの編集 .................................................................................................................................................. 40 m 第3章 3.1.1 ダイアログのコントロールイベント ............................................................................................................... 40 3.1.2 コントロール条件............................................................................................................................................ 46 3.1.3 レイアウトの変更、コントロールの追加 ........................................................................................................ 47 ダイアログボックスの作成 .................................................................................................................................... 50 第4章 1 つのインストーラーで複数の パッケージやランタイムを配布する .................................................................. 57 4.1 再配布可能ファイルの配布/複数製品のインストール............................................................................................ 58 4.1.1 Sa 3.2 InstallShield で提供されている機能 ............................................................................................................... 58 4.2 マージモジュール .................................................................................................................................................. 59 4.3 InstallShield 前提条件 ........................................................................................................................................... 61 4.3.1 InstallShield 前提条件 ..................................................................................................................................... 61 4.3.2 独自の前提条件の作成 .................................................................................................................................... 63 4.4 スイートインストーラー ....................................................................................................................................... 70 4.4.1 スイートインストーラー ................................................................................................................................. 70 4.4.2 スイートプロジェクトの作成 .......................................................................................................................... 73 第5章 アップデートと トラブルシューティング ............................................................................................................. 85 5.1 アップグレードの基本 ........................................................................................................................................... 86 5.1.1 5.2 アップグレードの種類 .................................................................................................................................... 86 アップデートのトラブルシューティング .............................................................................................................. 89 5.2.1 アップデート時のトラブル ............................................................................................................................. 89 5.2.2 ログファイルの取得と確認 ............................................................................................................................. 91 InstallShield 実践トレーニング 1 2 Sa ple m 第1章 ターゲットシステムの環境に適した Sa m ple インストーラーを作成する InstallShield 実践トレーニング 3 1.1 Windows Installer での条件設定 1.1.1 Windows Installer のプロパティ InstallShield では、ターゲットシステムのインストール要件やコンポーネントのインストール要件などインストーラーに m ple 様々な条件を指定できます。これらの条件は、Windows Installer のプロパティを使用して判定することができます。 Windows Installer は、インストーラーの実行時に OS の情報やインストールに関する情報をプロパティに格納します。 例) VersionNT ServicePackLevel Sa オペレーティングシステムのプロパティ WindowsNT 系のオペレーティングシステムのバージョン Windows サービスパックのバージョン SystemLanguageID システムのデフォルト言語(ロケール) MsiNTProductType Windows の製品タイプ ユーザーのプロパティ Privileged 昇格した権限で動作しているかどうか UserLanguageID ユーザーのデフォルト言語 LogonUser ログオンしているユーザー名 必須のプロパティ ProductCode 製品コード ProductLanguage 製品の言語 ProductVersion 製品のバージョン ProductName 製品名 【参考】 Property Reference http://msdn.microsoft.com/ja-jp/library/aa370905(en-us,VS.85).aspx InstallShield 実践トレーニング 4 1.1.2 条件の形式 条件は[プロパティ ple ほとんどの条件は MSI のプロパティ値と固定値を比較します。 オペレータ 値]の形式で表されます。条件を組み立てる時にオペレータに比較演算子や論理演算子 比較演算子 論理演算子 等しい <> 等しくない >= < <= Sa = > m を使うことができます。 より大きい not 右側の条件を満たさない and 左側と右側の条件を同時に満たす or 左側と右側の条件のうち少なくとも 1 つを満たす 等しいか、より大きい より小さい 等しいか、より小さい ※大文字と小文字を区別しない xor 左側と右側の条件のうちどちらか 1 つ だけを満たす 例えば、プロパティ VersionNT プロパティ は、「(メジャー OS バージョン * 100)+ マイナー OS バージョン」の値が 定義されます。条件[VersionNT=603]はターゲットシステムが Windows 8.1、Windows 10 もしくは Windows Server 2012 R2 である場合に、真になります。 また、条件でプロパティ名だけを指定した場合(オペレータまたは値なしで)、条件は単純にプロパティの存在有無を判断し ます。例えば、条件[VersionNT]はプロパティ VersionNT が値を持っている場合に真になります(インストールは Windows NT ベースのシステム上で実行されます。) 1 つの条件内で論理式を組み合わせるため、論理演算子を使用できます。「VersionNT=603 And MsiNTProductType=1」は、 ターゲットシステムが Windows 8.1、Windows 10 の時、真になります。 プロパティはあらかじめ用意されているものだけでなく、自分で作成したプロパティ(MYPROPERTY など)も使用できま す。 InstallShield 実践トレーニング 5 1.2 インストール要件とシステム検索 1.2.1 インストール要件 InstallShield のプロジェクトアシスタントには、 [インストール要件]のページがあります。特定のターゲットマシンでのみ インストールが実行されるように、ひとつもしくは複数の OS を指定することができます。 ここで、設定したインストール条件は IDE の[一般情報]ビューで[インストール条件]に設定されます。条件が満たされ なかったときに表示されるメッセージは、[インストール条件]で変更もできます。 1.2.2 システム検索 ple インストール条件は MSI データベースの LaunchConditions テーブルに格納されます。 Sa m InstallShield では、ターゲットシステムの環境を確認するシステム検索という機能があります。 システム検索を使用すると、実行時にターゲットシステム上のファイルを検索し、見つけた場合にはファイルのフルパスを プロパティに格納できます。また、レジストリ、XML ファイル、Windows フォルダーの INI ファイルからのデータの読み 出しもできます。図は、ターゲットシステム上の Program Files フォルダーにある isdev.exe という実行ファイルを検索す る設定例です。 InstallShield 実践トレーニング 6 TIPS プロジェクトアシスタントの[インストール要件]ページでは、あらかじめいくつかのシステム検索設定を用 意してあり、チェックをつけるだけでこの機能を利用できます。 NOTE ple [システム検索]ビューでの設定は AppSearch テーブルに書き込まれます。 実行時には AppSearch アクションが検索に関係するテーブルを読み込み、指定したファイルやレジストリや INI ファイルの情報を指定したパブリックプロパティに格納します。このプロパティはレジストリ値を書き込む のに使用したり、コンポーネントやアクションの条件として使用したりできます。 システム検索を利用して以下のレジストリ値が 1.0 でない場合、インストールを中断します。 m 実践 HKEY_LOCAL_MACHINE¥Software¥Networld¥AppSearch 値:Version [動作とロジック]-[システム検索]ビューにて、右クリックから[追加]を選択し、システム検索ウィザードを Sa 1) データ:1.0 起動します 2) [ようこそパネル]を次へ進めると、 [検索する対象を指定してください]パネルが表示されるので、 「レジストリエ ントリ」を選択し、[次へ]ボタンをクリックします ※このパネルでファイルやフォルダーを検索するか、レジストリ値を読み出すかなど指定できます InstallShield 実践トレーニング 7 Sa ple m 【中 略】 第2章 インストール中に実行する Sa m ple カスタマイズ処理を実装する InstallShield 実践トレーニング 23 2.1 カスタムアクション 2.1.1 インストールシーケンスとアクション ◆シーケンスとアクション Windows Installer は、あらかじめ定義されている標準アクションとユーザーが独自に定義したカスタムアクションでインス m ple トールロジックを制御しています。 標準アクションは、Windows プログラミングの Windows API のようなものです。標準アクションについては、Windows Sa Installer は動作を知っているので、標準アクションの名前をシーケンス内に指定するだけで済みます。 また、カスタムアクションは、Windows Installer がネイティブでサポートしていない処理を行うときに使用します。カスタ ムアクションを作成すると、Windows Installer はそのカスタムアクションをインストール中に実行します。Windows Installer のカスタムアクションはプログラムのユーザー定義関数のようなものです。 そして、これらのアクションを呼び出す順番を定義したメインプログラムのようなものをインストールシーケンスと呼びま す。インストールシーケンスは、以下の 2 つのシーケンスにより構成されます。 ユーザーインターフェイスシーケンス ターゲットシステムやユーザーからの情報取得、ダイアログボックスを表示するアクションを含む。ユーザーのコンピ ューターへは一切変更を加えない。 実行シーケンス ターゲットシステムに変更を加える。ユーザーインターフェイスは表示しない NOTE サイレントインストールを実行したときには、Windows Installer はユーザーインターフェイスシーケンスをス キップします。ダイアログアクションでは、Windows Installer はダイアログを表示します。実行シーケンスで はダイアログアクションを使えません。 InstallShield 実践トレーニング 24 ◆インストールシーケンス ple InstallShield では、[カスタム アクションとシーケンス]ビューでインストールシーケンスを確認できます。 インストールシーケンスの[ユーザーインターフェイスシーケンス]と[実行シーケンス]は順番に並べたアクションの連 続で構成されます。 内容 シーケンス番号 シーケンスでアクションが実行されるタイミングを決定。シーケンス番号の小さい m プロパティ 順にアクションを実行 アクションの条件を指定。インストール時に条件が成立したアクションのみ実行 コメント Sa 条件 InstallShield のプロジェクトに保存されるだけで、インストール時には使用されな い また、シーケンスの最初の 3 つのアクションはマイナスのシーケンス番号です。マイナスのシーケンス番号は Windows Installer では特別な意味を持っていて、通常のシーケンスでは実行されずインストールの終了時にインストールの戻り値に 依存して実行されます。 アクション名 シーケンス インストールの戻り値と実行されるアクション 番号 SetupCompleteSuccess -1 戻り値が 1 のとき、このアクションを実行 インストールが成功したときに、戻り値 1 を返す SetupInterrupted -2 戻り値が 2 のとき、このアクションを実行 インストールが中断されたときに、戻り値 2 を返す SetupCompleteError -3 戻り値が 3 のとき、このアクションを実行 インストール中にエラーが発生し、インストールが終了し たときに、戻り値 3 を返す - -4 戻り値が 4 を戻すこともあり、そのときシーケンス番号 -4 のアクション(この例には存在しない)を実行 インストールが一時停止したときに、戻り値 4 を返す InstallShield 実践トレーニング 25 Sa ple m 【中 略】 ple 第3章 ユーザーインターフェイスを Sa m カスタマイズする InstallShield 実践トレーニング 39 3.1 ダイアログの編集 InstallShield では標準で多くのダイアログボックスが用意されており、 [ユーザーインターフェイス]-[ダイアログ]ビュ ーで編集を行うことができます。 [ダイアログ]ビューには、 [動作]ノードと[言語]ノードの 2 つのノードがあり、 [動作] m ple ノードではダイアログのインターフェイス動作を編集し、[言語]ノードではレイアウトの編集を行います。 3.1.1 ダイアログのコントロールイベント Sa ダイアログの[動作]ノードでは、そのダイアログに含まれるコントロール(名前とタイプ)が表示されます。特定のコン トロールを選択すると、[イベント]設定にダイアログのコントロールイベントが表示されます。 InstallShield 実践トレーニング 40 中央ペインでコントロールを選択すると、右ペインの[イベント]でコントロールに関連付けされているコントロールイベ ントを参照することができます。 ple コントロールイベントの設定 イベントの種類 条件 イベントの引数 イベントの種類 条件 m イベントの引数 イベントの設定では、 「イベントの種類」 「条件」 「イベントの引数」を指定します。イベントの引数は、選択するイベントに よって設定できる項目が異なります。 また、イベントの[条件]フィールドではイベントを実行する条件を指定します。コンポーネントやカスタムアクションの Sa 条件と違って、コントロールイベントの[条件]を空白にすると、イベントは実行されません。コントロールイベントが常 に実行されるように指定するには、条件に[1]を入力します。特定の条件を満たすときだけ実行するには、 「SHOWMSG=1」 のようにプロパティを使用して条件を設定することができます。 なお、コントロールイベントは MSI データベースの ControlEvent テーブルに書き込まれます。 実際に、よく使われるコントロールイベントは次の 4 つになります。 イベント 内容 NewDialog 現在のダイアログを閉じ、 [ダイアログ名]フィールドに指定されているダイアログを表示。 通常、ダイアログの順番を制御する[戻る]および[次へ]ボタンに関連付けされる SpawnDialog 現在の子ダイアログの[ダイアログ名]フィールドに表示されているモーダルダイアログを 表示。通常、モーダルダイアログの[インストールを中断してもよろしいですか?]を表示 する[キャンセル]ボタンがあるダイアログに使用される。現在のダイアログは開いたまま で、このダイアログを表示する DoAction [アクション]フィールドに表示されているカスタムアクションを起動。このコントロール イベントを使うことで、シーケンステーブルに、このイベントを挿入せずにカスタムアクシ ョンを起動可能 SetProperty [プロパティ]フィールドに表示された値にプロパティの値を設定。コントロールイベント でプロパティの値をクリアするには、アクションの引数を{}(中括弧内にスペースを入れず) に設定。 InstallShield 実践トレーニング 41 Sa ple m 【中 略】 ple 第4章 1 つのインストーラーで複数の Sa m パッケージやランタイムを配布する InstallShield 実践トレーニング 57 4.1 再配布可能ファイルの配布/複数製品のインストール 4.1.1 InstallShield で提供されている機能 InstallShield は、Visual C++ ランタイムや .NET Framework など一般的によく利用されるサードパーティー製の再配布可 能ファイルを含んでいて、それらを簡単にインストールに組み込むことができます。製品と共に再配布可能ファイルをイン ストールしたり、複数製品やテクノロジーフレームワークをインストールしたりするために、さまざまな機能を提供してい m ple ます。 Sa 以前は別製品やランタイムをインストールするための専用の機能がなかったために、カスタムアクションや InstallScript 関 数の LaunchAppAndWait 関数などからインストーラーを呼び出す処理を実装するケースが多くありました。しかし、一度 に一つの .msi ファイルしか実行できないという Windows Installer の制限もあり、希望の動作が実現できないケースも少 なくありませんでした。 前提条件や MSI 連鎖パッケージ、スイートインストーラーなどの新しい機能では、このような問題を回避することができま す。 それぞれの機能にはメリット/デメリットがあるので、どの機能が最も適しているかを検討して、使用することをおすすめ します。 InstallShield 実践トレーニング 58 4.2 マージモジュール InstallShield には多数のマージモジュールが付属しており、既存のマージモジュールを簡単にインストーラープロジェクト m ple にマージできます。また、独自のマージモジュールを作成して、他の開発グループに配布することもできます。 Sa 下の図はマージモジュールをダイレクト編集モードで開いたものです。 マージモジュールには機能はなく、コンポーネントの構成やカスタムアクションの設定だけが行われているため、マージモ ジュールだけでインストールを行うことはできません。InstallShield では、 [再配布可能ファイル]ビューで機能との関連付 けをして、インストールを行います。 InstallShield 実践トレーニング 59 [再配布可能ファイル]ビューでは、インストーラーに取り込むことのできるサードパーティー製のマージモジュールやセ ットアップ前提条件を含んでいます。マージモジュールは、[タイプ]が[マージモジュール]となっているものです。 [アプリケーション データ]ビューグループ下の [再配布可能ファイル]ビューで、マージモジュールをプロジェクトの 機能に追加することができます。 したい機能を選択します。 ple マージモジュールをプロジェクトに追加するには、マージモジュールのリストから希望のものを選択し、モジュールを接続 いくつかのマージモジュールは依存関係を持っています。依存関係のあるマージモジュールは、ビルド時にプロジェクトに m 追加されます。 NOTE Sa [ツール]メニュー[オプション]-[マージモジュール]タブの[マージ モジュールの場所]で InstallShield がマージモジュールの検索を行うフォルダーを指定することができます。ここで指定したフォルダーに存在して いるマージモジュールが[再配布可能ファイル]ビューに表示されます。 NOTE システム上にダウンロードされていない再配布可能ファイルについては、[場所]列に[ダウンロードの必要あ り]と表示されます。マージモジュールをインストールするには、ローカルにマージモジュールをダウンロード しておく必要があります。 InstallShield 実践トレーニング 60 4.3 InstallShield 前提条件 4.3.1 InstallShield 前提条件 ple 製品が必要とする別製品やランタイムをインストールするために、InstallShield 前提条件を使用することができます。 m セットアップ前提条件は、インストールされている製品のすべての構成に対してインストールする必要がある場合、自身の インストールで使用する機能を提供するベース アプリケーションやテクノロジーフレームワークのインストールに適して います。プロジェクトに InstallShield 前提条件を追加すると、デフォルトではセットアップ前提条件タイプとして追加され ます。 Sa また、機能前提条件は、エンドユーザーがインストールする機能を選択したときインストールされます。機能前提条件は、 インストールされている製品の一部の構成に対してのみインストールする必要がある場合、自身のインストールには不要な アプリケーションまたはコンポーネントに適しています。 InstallShield は基本的なセットアップ前提条件のセットとして、Internet Explorer や.NET Framework の各バージョンを含 んでいます。セットアップ前提条件をプロジェクトに含めるには、 [再配布可能ファイル]ビューで対象のチェックボックス にチェックします。 InstallShield 実践トレーニング 61 Sa ple m 【中 略】 ple m Sa Copyright (C) 2015 Networld Corporation InstallShield ® は、Flexera Software 社の商標または登録商標です。 その他すべての会社名および製品名はそれぞれの所有者の商標です。 本テキストの一部または全てを無断で複写転載することは禁止されています。 本テキストの内容は将来予告なく変更されることがあります。 1版 2015 年 11 月 株式会社ネットワールド 〒101-0051 東京都千代田区神田神保町 2-11-15 住友商事神保町ビル