external の ヘルプ解説では This flag instructs Inno Setup not to statically compile the file specified by the Source parameter into the installation files, but instead copy from an existing file on the distribution media or the user's system. See the Source parameter description for more information. となっています。
分類:[インストーラ]
投稿し直しました。のでよろしくお願いします。
http://dobon.net/vb/installer/installer2-11.html
の日本語VB6ソフトを動かすのに必要だと思われるファイルをインストールするためのスクリプト
ついてですが、少し判らないことがありましたので質問させていただきます。
; VB6ランタイムライブラリ
; 必要最低限のファイル
Source: "{sys}\ASYCFILT.DLL"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall external
external の ヘルプ解説では
This flag instructs Inno Setup not to statically compile the file specified by the Source parameter into the installation files, but instead copy from an existing file on the distribution media or the user's system. See the Source parameter description for more information.
となっています。
すなわち、上の例では作成される SetUP.exe にはコンパイルする際に使用するPCの {sys}\ASYCFILT.DLL
ファイルは SetUP.exe に組み込まれず、ソフトをインストールしようとするユーザーが SetUP.exe を実行
する際に、ユーザーPCの{sys}\ASYCFILT.DLLファイルを、同じくユーザーPCの{sys}フォルダーにコピー
すると言う指定になっているはずです。
したがって、上記のスクリプトを記載する意味はなく
>Inno Setupのヘルプを読むと、SYSTEMディレクトリにあるDLLをSourceに指定すべきではなく、
>別のディレクトリに置いておくべきだというような注意書きがあります。この忠告に従う場合は、
>下記のスクリプトの「Source: "{sys}..."」の部分をそのファイルのある別のディレクトリに
>書き換えてください。またこのときファイル名をフルパスで指定したときは、Flagsのexternal
>を削除してください。(01/9/6追加)
のように、Windowsのバージョンに依存しない配布可能なDLL,OCXをコンパイルPCの特定のフォルダー
で管理・保存し、それを external 無しで記載するべきでは無いでしょうか?
例:
Source: "C:\hogehoge\VBDLL\ASYCFILT.DLL"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall