Tips No.4 - 2002/06/25
■back ■index
 


  ■Install Sheild(r) Expressで普通のショートカットを作成する方法  
   
 

■課題

Install Sheild(r) Express Borland Limited Editionで普通にプロジェクトを作成し、思い付くままにショートカットを作成すると、例のWindowsInstallerで作った時と同様に、間に中間ファイルを作成する形式のショートカットが作成される・・・

普通に作るとこんな感じになるだろうと思われる >>
ここではFeatureの項目とターゲットの項目に注目してみておいてもらいたい

この設定で、インストールパッケージを作りインストールを行うと、例の形式のショートカットになるのだが、これ、なんかこだわりがあるということは意味があるのだろうが、この形式で作られるとどうやっても引数を渡すことが出来ない・・・、パラメーターに「%1 %2 %3 ... 」とか書いても無駄であった。

とりあえずこれでは困るのである。

実際これで作られたMSIファイルなりをOrcaで中身を見ると

このようにショートカット0のコンポーネントはnvplayer.exeでターゲットがAlwaysInstallになっている、Targetの項目がインストールのパッケージ内部のコンポーネントを直接指している場合、例の形式のショートカットが作成されるので、仮にOrcaで直接MSIファイルをいじるのだとしたらTargetの項目を直接インストール後のファイルを示すように書き換えればよいというのは、Windows Installerの場合に書いたとおりである。

参考までに今回の場合その手法をとるなら、以下のように書き換えればよい。

しかし、InstallSheildではこの手法は賢明とはいえない。

なぜならば、setup.exe単体にパッケージを圧縮するモードの場合Orcaでインストールパッケージを編集することが出来ないからである(TT、そのためsetup.exe単体配布を諦めるか、例の形式のショートカットのままで配布するかの2択となる・・・

■解決方法

いろいろ格闘した結果、結構姑息な方法で解決できるのである。

先ほどの設定例 >> では「Feature」が「常にインストール」となっていた場合に、作成後のMSIではTargetの項目が「AlwaysInstall」になっていたところに着目すると、解決策が見えてくる。

つまり、ショートカットの機能の区分をショートカットの対象(この場合nvplayer.exeは常にインストールの機能に含まれる)と別の区分にしてやってはどうか?ということである。

具体的には、セットアップのデザインの機能で新たに「ShortCut」という機能を追加する

そして次に、ショートカットの設定に移り、各ショートカットを選択する。

ここで「Feature」の項目を「常にインストール」から「ShortCut」に変更する。

変更前

変更後

この際ターゲットが消えるので、同じ値を再設定する。
むろん「ShortCut」の機能をデフォインストールにするのも忘れてはいけない。

あまり違いが無いように見えるかもしれないが、これで作成したMSIファイルをOrcaでみると、下のようなレコードになっている。

見てのように、直接ファイルをTargetとしたショートカットを作成することとなる。実際このパッケージでインストールを行うと、普通の形式のショートカットが作成される(^^

というわけでとりあえず姑息な手法で解決(ぉ

■感想

誰か、本気でこのショートカットの意義教えて欲しい・・・

 ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

  ∧ ∧
  (  ,,)
  ./  |
 (___/  

*AAは「おめーのバグだろ、ゴルァ!!」より

 

 

色々メモ - 鴨屋敷 1999-2002 by 矢鴨 kamo@7cho-me.com
■back ■index