注意:セットアッププロジェクトはVisual Studio 2012からサポートされなくなりました。
インストール後(あるいはインストール中)にシステムの再起動を行うには、スタンダードアクションのScheduleReboot ActionやForceReboot Actionを使います。ScheduleRebootはインストールの最後に再起動し、ForceRebootは途中でも再起動できます。Visual Studioではこれらのアクションを追加することはできませんので、これらを使うにはOrcaを使用します。
性格上、ForceRebootの方が使い方が難しいので、ここではScheduleRebootをInstallExecuteSequenceテーブルに挿入することにします。
まずOrcaでMSIファイルを開き、InstallExecuteSequenceテーブルを表示します。ヘルプによると、ScheduleRebootの挿入位置は、通常は最後ですが、どこでもよいということです。よって、ここでは次のような行をInstallExecuteSequenceに追加します。
このようなMSIファイルを実行すると、インストール終了後に再起動を求めるダイアログが表示されます。ユーザーはここで再起動しないように選択することもできます。サイレントインストールのときは、自動的に再起動されます。
この例ではアンインストール時にも再起動を求めるダイアログが表示されますが、これを防ぐには、Conditionに「NOT REMOVE~="ALL"」を指定します。
これ以外の方法としては、REBOOT Propertyに「Force」を指定する方法もあります。例えば、MSIファイルをインストールするときに次のようなコマンドを使用し、プロパティを指定します。(Windows Installerプロパティを設定する方法の詳細は、こちらをご覧ください。)
msiexec /i (MSIファイル名) REBOOT=Force
補足:Windows Installer 3.0以降では、「/forcerestart」コマンドラインオプションによっても可能です。
再起動の確認ダイアログを表示しないで再起動されるようにするには、さらに「REBOOTPROMPT=Suppress」を追加します。
msiexec /i (MSIファイル名) REBOOT=Force REBOOTPROMPT=Suppress
逆に再起動をしないようにするには、REBOOTプロパティを「ReallySuppress」とします(Windows Installer 3.0以降では、「/norestart」コマンドラインオプションによっても可能です)。
(この記事は、「.NETプログラミング研究」の第59号で紹介したものを基にしています。)
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。