JITパッケージ・アップグレードをカスタマイズしたい理由は何でしょうか。
コマンドライン・パラメータをMSIに提供し、例えばサイレント・インストールまたはパラメータのログといった動作を変更する。
ユーザーによってアップグレード・パスを変える。パッチを受け取るユーザーもいれば、受け取らないユーザーもいます。(このオプションは機能セット配布では利用できません。)
自分のしたいことにあわせて自分のSETUP.EXEを提供する。
SETUP.EXEは実行ディレクトリ内のLANSA とともに提供されます。このプログラムは、SETUP.EXEが実行されるディレクトリと同じディレクトリのSETUP.BATとよばれるファイルを実行します。
自動的に生成されるパッチのSETUP.BATには次のような例があります。
"TESTMSI2_v2.3.4.2_en-us.msp" /passive |
1行目は実行されるMSIまたはMSPです - この例では、以下の部分です。
"TESTMSI2_v2.3.4.2_en-us.msp" /passive.
アプリケーション・サーバーがこの行を生成します。2行目はJITを実行しているクライアントのパラメータを含んでいます。この行はSETUP.EXEを呼び出す前にクライアントで追加されます。この行はパッチのインストールが終了するとアプリケーションを開始します。SETUP.EXEはAPI ShellExecute を使い、verb 'open'を使ってSETUP.BATを実行します。
パッチには答えるべき質問がないため、/passiveを使います。したがって、ユーザーは何も入力する必要はありません。/passiveオプションはプログレスバーを表示するので、ユーザーは何かが実行中であるというフィードバックを受け取ります。 |
|
これは自動操作です。
"SETUP.TXT"ファイルがアプリケーション・ディレクトリにある場合、内容は、次の例のようにMSI/MSPファイル名に添付されます。
/L*V+ "C:\package.log"
指定されるパラメータは MSI パブリック・プロパティです。詳細は、「msiexec.exe コマンドライン・オプション」を参照してください。 |
ここでは有効なMSI/MSPパラメータが使えます。この特定の例では全てをログし、c:\package.logファイルに添付します。これは一次レベルのカスタマイズです - MSIコマンド・ラインにパラメータを追加します。以前のSETUP.BATは次のようになります。
"TESTMSI2_v2.3.4.2_en-us.msp" /L*V+ "C:\package.log" if errorlevel 1 exit |
JITアプリケーション・サーバーは要求されたアプリケーションのx_appsディレクトリがあるかどうかを確認します。ある場合はMSIがダウンロードされます。
ダウンロードするアプリケーションは、ファイルが存在しない場合を除き、applications.txt から取得されます。ファイルが存在しない場合、アプリケーションはコマンド行パラメータ APPL から取得されます。 |
サーバーは次にアプリケーション・ディレクトリに SETUP.EXE があるかどうかを確認します。ない場合は、LANSA実行ディレクトリ内のコピーがクライアントに転送されます。これが別のレベルでの利用可能なカスタマイズです。開発者はどのような SETUP.EXE ファイルもアプリケーション・ディレクトリに入れることができます。ファイルはクライアントに転送され、実行されます。例えば、他のファイルをクライアントにダウンロードさせる手段として自己解凍される実行可能ファイルを入れることもできます。
もちろん、カスタム SETUP.EXE には SETUP.BAT の実行が必要ですが、MSI/MSPをインストールしてアプリケーションの起動もします。LANSAは、この構成について、カスタムSETUP.EXEのクライアントへの配布のみをサポートします。その後はユーザー自身でサポートしてください。
クライアントに転送されるファイルは次のとおりです。
SETUP.EXE
SETUP.BAT
<クライアントにインストールされていない次のMSI/MSPファイル>
アプリケーション・サーバーは元のアプリケーション名と一致しないアプリケーション・ディレクトリを持つことができます。クライアントには新しい名前をMSIプロパティとして指定する最初のMSIをインストールする必要があります。インストールすると、APPL値が新しい値に設定され、新しいAPPLを使ってJITに添付されます。サーバーはMSIコマンド・ラインのAPPLを指定する SETUP.BAT を生成します。
APPL 値の変更は、機能セット配布利用時はサポートされません。 |
APPLはMSIコマンド・ラインでのみ設定できるランタイムのみの値です。APPLはJITサーバーがある場合にのみ必要です。アプリケーションの最初のインストールでは値の設定も必要です。JITがクライアントに提供し、クライアントがMSIではなくSETUP.EXEを実行させる (SETUP.EXE、SETUP.TXT および MSI) の3つのファイルを提供すると値が設定されます。APPL値との一貫性を持たせるためにはこのアプローチを推奨します。別の方法として、クライアントに命令を出し、msiexec.exeと引き渡すプロパティ値を使ってMSIを実行します。バッチ・ファイルを提供することもできます。
サーバーは、新しいAPPLディレクトリ名を作成してセットアップします。元のディレクトリからMSIファイルをコピーします。これでJITはクライアントにインストールするアップデートを検索しなくなります。必要に応じてMSPをコピーして入れると、次回アプリケーションが実行される時にJITがMSPをインストールします。ディレクトリには少なくとも1つのMSIまたはMSPが必要です。ない場合、エラー750がサーバーの X_ERR.LOG に出力されます (0750 - Application testmsi3 not found or no packages in applpkg.dat)。
利用可能なカスタマイズを要約すると次のようになります。
X_RUN パラメータを含むMSIパラメータを指定します。SETUP.EXE は開発者が実行したいどのようなインストールにも置換えられ実行されます。 Customer1InventoryControl と Customer2InventoryControlディレクトリに入れることができます。これらはまったく同じソフトウェアを実行していますが、異なるレベルでも保持されます。これらに異なるパッチを与えることもできます。(このオプションは機能セット配布では利用できません)1. /qb
MSI および MSP インストールの両方に対し、進捗ダイアログのみを表示し、確認ダイアログは表示されません。ですから、インストールはユーザーとのやり取りなしに自動的に行われます。MSI インストールは、前回のインストールの設定を使用します。
2. /l*vx %TEMP%\InstallLog.txt
診断ログ・ファイルがユーザーの一時ディレクトリに出力されます。
3. /qf
/passive の省略値パッチ動作を上書きし、MSI/MSP 内のサイレント・インストールも上書きする、ユーザー・インターフェース全体を表示します。