2014年11月26日水曜日

ファイル名を指定して実行 から ThinApp のビルドを行う

Setup Capture と Package.ini の編集等を経て一通り作成したプロジェクトフォルダを、
Setup Capture がインストールされていないPCでビルドする場合、 ThinApp の
インストールは必要なく、32Bit OS の場合、 C:\Program Files\VMware\VMware ThinApp を
まるごと、適当な場所へコピーして、ビルドすることができます。

しかし、コピーしただけでは、プロジェクトフォルダ内の build.bat を実行しても、ビルドすることはできません。


たとえば、C:\ThinAppBin というフォルダに VMware ThinApp フォルダの内容をコピーし、
C:\ThinAppProjects\TeraPad\ というプロジェクトフォルダが存在する場合は、
ファイル名を指定して実行から、以下のコマンドでビルドすることができます。

cmd /c set THINSTALL_BIN=C:\ThinAppBin && C:\ThinAppProjects\TeraPad\build.bat

このコマンドの実行の裏付けとして、
set コマンドで実行される、環境変数 THINSTALL_BIN の出どころを、
build.bat の中を覗いてみると、

if exist "%THINSTALL_BIN%\vregtool.exe" goto found
set THINSTALL_BIN=%PROJECT_DIR%\..\..
if exist "%THINSTALL_BIN%\vregtool.exe" goto found
set "THINSTALL_BIN=C:\Program Files\VMware\VMware ThinApp"
if exist "%THINSTALL_BIN%\vregtool.exe" goto found
set "THINSTALL_BIN=%ProgramFiles(x86)%\VMware\VMware ThinApp"
if exist "%THINSTALL_BIN%\vregtool.exe" goto found
set "THINSTALL_BIN=%ProgramFiles%\VMware\VMware ThinApp"
if exist "%THINSTALL_BIN%\vregtool.exe" goto found
echo Could not find vregtool.exe, please set the environment variable THINSTALL_BIN or install to C:\Program Files\VMware\VMware ThinApp
goto failed

という記述がなされており、
ビルドに必要な vregtool.exe 等が保存されているパスが、
build.bat 内で環境変数として利用されていることがわかります。

このため、 THINSTALL_BIN を、build.bat の実行前に指定することで、Program Files 配下に VMware ThinApp フォルダを配置していなくても、ビルドすることができるようになります。

このように、エクスプローラーから build.bat をダブルクリックするのではない方法でビルドが可能になり、

これを駆使してバッチファイルを作成して、
ビルドの自動化や、標準出力のリダイレクトを利用して、テキストファイルに日時とともに書きだすことにより、いつビルドを実施したか把握することができるようになります。