CPack で msi 作成(Windows)

はじめに

msi インストーラーは Visual Studio でビルドして作成します。

doxygen ドキュメントを含めない場合の作成手順

※デフォルトでは、ドキュメントビルドは OFF になっているため生成されません。

Visual Studio のソリューション エクスプローラーから「PACKAGE」を右クリックして「ビルド」を選択し実行します。

doxygenoff 1-1.png

doxygen ドキュメントを含める場合の作成手順

プロジェクトフォルダー直下にある CMakeLists.txt の下記の行を、OFF → ON に書き換えます。
C++ RTC の場合は 86行目あたり、Python RTC の場合は 77行目あたりです。

 option(BUILD_DOCUMENTATION "Build the documentation" ON) ※この行の OFF を ON に書き換えます。(デフォルトは OFF)

  1. Visual Studio のソリューション エクスプローラーから「doc」を右クリックして「ビルド」を選択し実行します。

    doxygenon 1-1.png

  2. 「doc」でビルド完了後、「PACKAGE」を右クリックして、「ビルド」を選択します。

    doxygenon 1-2.png

【注意事項】
  • CMake の configure で「BUILD_DOCUMENTATION」にチェックが入っているのを確認すること。
  • 先に「doc」のビルドをしてから、「PACKAGE」のビルドを行うこと。「doc」のビルドをせずに「PACKAGE」のビルドを行うとエラーになります 。

msi インストーラーの保存場所、ファイル名

正常に作成できた場合は、プロジェクトディレクトリーの [build] 内に保存されます。
ファイル名は、「RTCプロジェクト名+RTCのバージョン番号_OpenRTM-aist のバージョン番号_アーキテクチャ」となります。

(例) Flip100_rtm120_win64.msi
※アーキテクチャは、[win32] または [win64] となります。
 バージョン番号は、ドットを省いた形式で、[1.0.0] は [100] となります。

msi のインストール・アンインストール

インストール

  1. 作成した msi インストーラーをダブルクリックします。

  2. [次へ] をクリックします。

    msi_install 1-1.png

  3. [使用許諾契約書に同意します] にチェックを入れ、[次へ] をクリックします。

    msi_install 2-1.png

  4. [次へ] をクリックします。
    デフォルトのインストールパスは以下になります。
    (例) C:\Program Files\OpenRTM-aist\1.2.0\Components\c++\ImageProcessing\
    ※ImageProcessing は、RTCBuilderの「モジュールカテゴリ」で指定した名前

    msi_install 3-1.png

  5. [インストール] をクリックすると、インストールが開始されます。

    msi_install 4-1.png

    msi_install 4-2.png

  6. [完了] をクリックし、インストーラーを終了します。インストール後、スタートメニューに登録されます。

    msi_install 5-1.png

アップグレードの GUID 設定

アップグレードをするときに、すでにインストールされているバージョンを確認するため GUID を設定する必要があります。 GUID は、デフォルトで設定されていないため、Visual Studio で PACKAGE をビルドをする度に新しい GUID が割り当てられてしまいます。 事前に GUID を設定しておくことで、アップグレードなのか、新規インストールなのかを判断することができます。
以下に、GUID の設定手順を示します。

  1. Visual Studio のソリューション エクスプローラーから「PACKAGE」を右クリックし、「ビルド」を選択し実行します。

    msi_upgrade 1-1.png

  2. ビルドが完了すると、以下の出力画面に GUID が表示されるので、選択してコピーします。

    msi_upgrade 2-1.png

  3. ソリューション エクスプローラーから「ALL_BILD」を展開し、CMakeLists.txt をクリックします。

    msi_upgrade 3-1.png

  4. 手順2でコピーした GUID を以下の画面のように貼り付け、CMakeLists.txt を上書き保存します。

    msi_upgrade 4-1.png

  5. 再度、ソリューション エクスプローラーから「PACKAGE」を右クリックし、「ビルド」を選択し実行します。

    msi_upgrade 5-1.png

[補足]
GUID の作成には上記のほかに、GUID を新規に作成する方法もあります。
Visual Studio のメニューから [ツール] > [GUID の作成] を選択し、「GUID の作成」ダイアログを表示させます。

  1. [GUID 形式] で、[4. レジストリ形式・・・] を選択します。
  2. [新規 GUID] ボタンをクリックします。
  3. [コピー] ボタンをクリックします。
  4. [終了] ボタンをクリックして、ダイアログを閉じます。

    msi_upgrade 6-1.png

  5. 以下の画面のように、CMakeLists.txt に貼り付けて、上書き保存します。※数字のみを貼り付けます。

    msi_upgrade 4-1.png

アンインストール

以下、アンインストール手順です。

コントロールパネルから削除する方法

  1. [コントロールパネル] を開き、[プログラムのアンインストール] をクリックします。

    msi_uninstall 0-1.png

  2. インストールしたパッケージ名を選択し、[アンインストール] をクリックします。

    msi_uninstall 0-2.png

  3. コントロールパネルの一覧から表示が消えていればアンインストール完了です。

    インストーラーから削除する方法

  1. 作成した msi インストーラーをダブルクリックします。

  2. [削除] をクリックします。

    msi_uninstall 1-1.png

  3. [削除]をクリックします。

    msi_uninstall 2-1.png

    msi_uninstall 2-2.png

  4. [完了] をクリックし、インストーラーを終了します。

    msi_uninstall 3-1.png

サービスポートを持つ Python RTC の IDLコンパイル処理

サービスポートを持つ Python RTC は、パッケージインストール時に IDL コンパイルを実行します。 IDL コンパイル実行時にプロジェクトフォルダー内にある idlcompile.bat、delete.bat でこの動作を実現させているため、これらのファイルを削除してしまうと機能しなくなってしまうので注意が必要です。
コントロールパネルからアンインストールすることで、IDL コンパイル実行後に生成したファイルも削除されます。

以下、msi インストーラーによりインストールされるファイル一覧です。★マークが IDL コンパイルで生成されるファイルです。

 tree /f インストールディレクトリー\OpenRTM-aist\1.2.0\Components\Python\Category\FlipGUI
 C:\インストールディレクトリー\OpenRTM-aist\1.2.0\Components\Python\Category\FlipGUI
 │  BasicDataType_idl.py ★
 │  CalibrationService_idl.py ★
 │  delete.bat
 │  ExtendedDataTypes_idl.py ★
 │  idlcompile.bat
 │  InterfaceDataTypes_idl.py ★
 │  RTC.xml
 │  rtutil.py
 │  setup.py
 │  flipgui.py
 │  FlipGUIComp.py
 │
 ├─idl
 │   BasicDataType.idl
 │   CalibrationService.idl
 │   CMakeLists.txt
 │   ExtendedDataTypes.idl
 │   InterfaceDataTypes.idl
 │
 ├─ImageCalibService ★
 │   __init__.py ★
 │
 ├─ImageCalibService__POA ★
 │   __init__.py ★
 │
 ├─RTC ★
 │   __init__.py ★
 │
 └─RTC__POA ★
       __init__.py ★