LabVIEWでインストーラを用意する | マーブルルール

LabVIEWでインストーラを用意する

その他

スポンサーリンク

この記事では、LabVIEWでインストーラを作成する方法を解説しています。

インストーラ、とは、LabVIEWで作ったアプリケーションをPCにインストールするための一連のファイル群になります。これを使用することで、このPCにはLabVIEWがインストールされていなくても、アプリケーション(EXEファイル)を動かすことができます。

そんなもの用意しなくても、 アプリケーションのファイル(拡張子exeのファイル) をコピーして、動作させたい環境に移すだけで動くのでは?と思う方もいると思いますが、それだけでは動きません。

LabVIEWで作った(ビルドした)EXEは、単体では動かず、LabVIEWランタイムエンジンというソフトウェアが必要になります。また、もしハードウェアを動かすようなプログラムなのであれば、それを動かすためのドライバソフトウェアも必要になります。

そこで専用のインストーラを作成することで、EXEのみならず必要なランタイムエンジンおよびドライバソフトウェアも一緒にインストールすることができるようにする、という機能があります。

なお、この機能はLabVIEW Application Builderというアドオンが必要になります(LabVIEW Professional Editionなら標準で付属)。EXEをビルドするにも同じアドオンを使用するため、EXEが作れるよ、という方はこのアドオンが入っていることになります。

この記事ではいくつかのシナリオで作ったEXEに対してインストーラを作成する方法を紹介しています。

なお、EXEファイルの作成の方法については、別記事で紹介しています。

スポンサーリンク

インストーラの便利さ

LabVIEWのプログラム(拡張子vi)は、LabVIEWというソフトウェアがないと動かすことができません。しかし、プログラムをEXE化すれば、LabVIEWというプログラム開発環境ソフトウェアがインストールされていないPCでもこれらのプログラムを実行することができます。

実行はできるのですが、冒頭にも説明したように、実行に必要なものはEXEファイルだけではなく、ランタイムエンジンやハードウェアを使用している場合にはドライバソフトウェアも必要になります。

多くの場合、このランタイムエンジンやドライバソフトウェアはNational Instruments社のHPから無料でインストーラをダウンロード、入手ができます。EXEを実行するPC(実行環境)でこれらのインストーラを使用しソフトをインストール、この環境がそろってEXEが実行できます。

ただし、いちいちインターネット接続してこれらのソフトウェアのインストーラをダウンロードする、という作業が必要になるのは手間がかかり、またどれが必要か(どのバージョンが適切か)といったことを考えるのは煩わしかったりします。

そこで、LabVIEWでEXEを作ったのと同じ環境で、そのEXEおよび他に必要なソフトウェアを含んだインストーラを作成することを考えます。

こうすることで、そのインストーラさえ実行すればEXEのみならずこれを動かすために必要なランタイムエンジンやドライバソフトウェアも一度にインストールすることができるので便利です。

インストーラを作る流れ

ではインストーラの作り方を見ていきます。全体の流れとしては、EXEファイルを作成するときの流れと全く同じで

  • プロジェクトを用意する
  • ビルド仕様を構成する
  • ビルドする

です。

プロジェクトを用意する

インストーラ作成もビルド仕様の一種で、プロジェクトエクスプローラから行います。既にEXEを作っているということは、このプロジェクトエクスプローラも必ずあるはずです。

なので特に意識せずにここは完了している前提とします。

ビルド仕様を構成する

EXEを作成するときのビルド仕様の画面にも、カテゴリが数多くあったもののよく使用するのはその中のいくつかの項目だけだったように、インストーラの作成についてもよく使用する項目は限られています。

インストーラを実際に実行した後に特定の動作を行わせるだとかそういった「凝った」設定もありますが、細かいところも最初からやろうとすると無駄に難しく感じてしまうことになりかねないので、今回の記事ではインストーラ作成に最低限必要なカテゴリしか基本的に触らず、これだけやっておけばとりあえず作成できるという項目を紹介します。

ビルドする

これもビルド仕様を構成したら後はビルドするボタンを押すだけです。

なお、ビルド仕様はプロジェクトに紐づいて管理することができます。「このインストーラを作ったときのビルド仕様はどのようにしていたかな?」ということが後で確認できる状態にしています。そのため、ビルド仕様自体を保存することができるのですが、これを保存することと、インストーラを実際に作る(=ビルドする)ことは違うことなので注意が必要です。

大まかな流れの話はこれくらいにして、実際にインストーラ作成の様子を以下で紹介します。

実際にインストーラを作成してみる

せっかくなので、以前EXE作成の際に用意した三つのシナリオのEXEについてそれぞれインストーラを作成することを例にとって紹介していきます。

シンプルなプログラム

まずはシンプルなプログラムです。一応おさらいとして、どんなプログラムだったかを示します。

メインVIの中にサブVIが入っているような簡単なプログラムです。

このようなプログラム、もう少しちゃんと言うと、「ハードウェアのドライバソフト等を使用していないプログラム」の場合には、LabVIEWのランタイムエンジンのみで動作することが多いと思います。

このようなEXEを含んだインストーラの作成の流れを見ていきます。

まず、ビルド仕様から新規のインストーラを作成します。

開いたプロパティの画面で、いくつかのカテゴリを設定します。

まずは製品情報カテゴリです。インストーラのビルド仕様の名前(プロジェクトエクスプローラ上での表示名)、製品名(インストール先でのEXEが入ったフォルダ名)、インストーラ名(インストール先で実行するインストーラの名前)およびビルドしたインストーラをどこに出力するかを決めます。

次に出力先カテゴリです。これは、インストール先のPCのどのフォルダにEXEファイルをインストールするかを決めます。デフォルトではProgram Filesフォルダになりますが、LabVIEW 32bitを使用している場合には、インストール先のPCのProgram Files (x86)フォルダになります。

そしてソースファイルカテゴリでどのEXEを含めるかを指定します。

現在使用しているプロジェクトエクスプローラで一つしかEXEのビルドを作成していない場合にはそのビルドをそのまま出力先フォルダの下に移します。

あとは追加のインストーラを確認します。こちらで、EXE以外のどのようなソフトウェアをインストーラに含めるかを指定します。

基本的には必要なソフトウェアは自動的に選ばれます。この簡単なプログラムだとランタイムエンジンしか必要ないので、既に選ばれている状態です。

「推奨されたインストーラを自動的に選択」のチェックを外すと他にもインストーラに含めたいソフトウェアを選ぶことができますが、特にそういったものがない場合にはチェックを外す必要もありません。

これで一通りの設定は終わりです。あとはビルドボタンさえ押せばビルドが始まり、インストーラが作成されます。

作成されるものはフォルダになっています。製品情報カテゴリで指定したビルド仕様名のフォルダが作成されるので、このフォルダの中身を丸々、インストール先のPCに移し、ここでインストーラのEXEを実行します(デフォルト名はinstall.exe)。

表示される項目にそのまま次へ次へと進んでいきます。

出力先ディレクトリはビルド仕様の設定で出力先カテゴリで選んだ場所がデフォルトとなります。

インストールが完了すると再起動を求められるので再起動します。

インストーラのビルド仕様の出力先カテゴリで選んだパスにインストールされているのを確認し、EXEを実行できるか確かめます。

基本的なインストーラ作成および使用については以上になります。

DAQを使用したプログラム

次に、ハードウェアであるDAQを使用するようなプログラムをEXEにした場合を例にとります。

基本的な流れは共通していて、実は特別に追加が必要な作業はありません。LabVIEWはEXEのプログラムでハードウェアのドライバソフトが必要なものがある場合、自動的にそのドライバソフトをインストーラに含んでくれるように設定してくれます。

自動的にLabVIEWが判断した以外に、何か別の理由で特定のドライバソフトをインストールしたい場合にはそのようにすることもできます。

とはいえ、自動的に判断してくれるのであればわざわざマニュアルでインストーラに追加する必要ないのでは?と思うかもしれませんが、実はここに落とし穴があり、上記の操作だと、ハードウェア構成に必要なNI Measurement & Automation Explorer (NI MAX)がインストール先にインストールされません。

実際にインストーラを実行しても、NI MAXをインストールするという記述が出てこない状態となります。

実はNI MAXは追加のインストーラとして選択してインストーラに含める必要があります。

ただ、どちらかというと、ハードウェアを使用したプログラムは、そのハードウェアの構成ごとインストール先にインストールしたい場合が多いと思います。

そこで、プログラムを作った環境のNI MAXの構成データをそのままインストール先にインストールする方法の方が便利です。この方法では、NI MAXごとインストール先にインストールされるので、追加のインストーラとして設定を行う必要はありません。

例えば、NI MAXにあるデバイスの情報があったとして、これをインストーラに含めるには、ハードウェア構成のカテゴリを編集します。

ハードウェア構成ファイルに対する構成として、NI MAXの構成ファイルを作成します。基本的には画面の指示に従って、どのシステムの構成をエクスポート(ファイルに保存してインストーラに含める)のか、どのハードウェアの情報を含めるのかなどを決めるだけです。

構成ファイルの指定を終えたらインポートモードの設定をします。有無を言わさずNI MAXの構成をプログラムを作成した環境と同じになるようにさせるということであれば下の画像で示した設定とします。

この設定にしたインストーラを実行すると、インストール先のPCでNI MAXがインストールされかつハードウェアの構成も反映されるようになります。(シミュレーションデバイスとして構成されるので実機と対応させます)

動的呼び出しを行うプログラム

EXE作成時には、動的呼び出しを行うようなプログラムはデータフォルダにVIとして表示されていました。ではこのようなVIをインストーラに含んだ場合に実行環境で動作することができるのか、実際に見てみます。

一応おさらい。こんなプログラムを用意していました。VIリファレンスを開くことで、viファイルを実行するようなプログラムです。

呼び出すプログラムは全てviで単純に四則演算を実行するだけの簡単なものとしています。

呼び出す側のプログラムはEXEにしていて、これ用のインストーラを作ることを考えます。

設定としては、ソースファイルカテゴリで、呼び出しをするプログラム(EXE)と呼び出されるプログラム(vi)を全てインストーラに含めるようにするだけです。

あとはインストーラをビルドして、インストール先のPCでインストーラを実行します。

viファイルもインストールされますが、LabVIEW本体のソフトウェア(LabVIEW.exe)がないと開くことはできません。

ですが、動的にこれらのviを呼び出すプログラムであれば、その呼び出しプログラムのEXEを実行するとちゃんとエラーなく動作させることができます。

インストーラのカスタマイズ

一通りの設定は上で紹介したとおりですが、いくつかのカスタマイズについて紹介します。

インストーラにEXEやvi以外のファイルを含める

インストーラにはEXEやviファイル以外のファイル(テキストファイルやpdfなど)を含めることができます。

プロジェクトエクスプローラでそれらのファイルがある状態とします。

インストーラのソースファイルの設定でこれらのファイルを追加します。

インストール先のプログラム保存場所

インストーラを実行した後にどのパスにEXEファイルが出力されるかについては出力先カテゴリで選ぶことができました。

これは、最初から出力先ビューに並んでいるパス以外にも設定することができます。例えば以下ではC:\Users\pcuser\ApplicationTestというフォルダにEXEファイルを出力するようにしています。このとき、インストール先のPCにApplicationTestというフォルダが存在していない場合には自動的に作成されることになります。

ソースファイルの指定も新しく作ったパスに指定してインストーラをビルドします。

ショートカットの作成場所

ショートカットはインストール先のPCのデスクトップに設定することもできます。デスクトップ以外への設定も、ショートカットカテゴリで選びます。

インストーラを作成するときに注意すること

インストーラを用意するための大元のデータが必要

インストーラ作成時に大切なことは、「インストーラに含んだ大元のソフトウェアのインストーラがあるかどうか」です。

例えば、DAQmxのドライバソフトウェアをインストーラに含めたいと考えたとします。このとき、プロジェクトエクスプローラで追加のインストーラカテゴリでDAQmxを選択しますが、これを含んでインストーラをビルドするためには、そもそものDAQmx自体のインストーラデータが必要になります。

開発環境のPCでどのようにそのDAQmxのドライバをインストールしたかによっては、そのDAQmx自体のインストーラのデータがPCに残っていない可能性があります。この場合、プロジェクトエクスプローラでDAQmxをインストーラを含めようにも、そのDAQmx自体のインストーラデータが見つからないため、インストーラのビルドがうまくいかないことがあります。

このエラーについてはNational Instrumentsの資料で「LabVIEW インストーラ ソースを選択」などとググると対応方法が書かれていたりします。(ただ、DAQmxの元々のインストーラを用意する必要がある、などなかなか面倒だったりします)

インストーラのビルドには時間がかかる

他の注意点として、EXE作成に比べて時間が結構かかるという点が挙げられるかと思います。

もし万が一途中でPCがフリーズしてしまってビルド仕様を最初から作り直す、といったことがないように、ビルド仕様を設定し終えたらビルドボタンをそのまま押すのではなく一度OKボタンでビルド仕様のウインドウを閉じ、プロジェクトエクスプローラを保存してからインストーラをビルドすることをオススメします。

作ったプログラムを他のPC環境でも使用したい、というときにインストーラの作成は便利です。この記事では紹介していない設定等でビルド仕様をさらにカスタマイズすることもできはしますが、特に凝った設定などなくてEXEを動かせるようにすればいいということであれば、これまで紹介してきた方法でのインストーラ作成で事足りるかと思うので参考にしてもらえるとうれしいです。

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました