dotNetInstaller Users Guide
単一EXE パッケージのビルド

最も一般的な配置シナリオでは、インストールパッケージを単一の自己展開EXEとして配布するのが 望ましいものです。dotNetInstaller は、依存関係の埋め込みと スタンドアローン パッケージされた setup.exe の作成を サポートしています。これは、全ての依存関係を一連の CAB ファイル群に CAB 書庫化し、 それらを setup.exe に埋め込み、CAB の内容を実行時に展開する事によって 達成されています。 また、dotNetInstaller は完了時に 展開された一時ファイルの消去も 可能です。 サードパーティーのパッケージング・書庫化 技術は 必要ありません。

依存関係の埋め込み
  1. 依存関係を埋め込むには、EmbedFileEmbedFolder コンポーネントを ブートストラッパー コンフィギュレーションに 明示的に追加しなければなりません。 その他の、msi からといった埋め込みや、 openfile 、サブコンポーネントの download は、リンカーによって自動的には なされません。

    コンポーネントを右クリックして、 Add, Embed FileEmbed Folder を選ぶ。新しく作成された埋め込みノードを選び、そのプロパティを調節する。

    EmbedFile サブコンポーネントの sourcefilepath は、あなたのファイルシステム上のファイルの場所です。 targetfilepath は、インストールの間 展開されたファイルの #CABPATH の下の、ファイル名を含む相対的なあて先パスです。 #CABPATH の下にファイルを展開するのに targetfilepath を省略しても構いません。 sourcefilepath は、インストーラーリンカーのコマンドラインで指定された /AppPath の値に相対的な場所であるかもしれません。それは今度は、リンカーコマンドが実行された所から カレントディレクトリーが デフォルトになります。

    EmbedFolder サブコンポーネントの sourcefolderpath は、あなたのファイルシステム上のフォルダの場所です。 targetfolderpath は、インストールの間 展開されたフォルダの #CABPATH の下の 相対的なあて先パスです。 #CABPATH の下にフォルダを展開するのに targetfolderpath を省略しても構いません。 sourcefolderpath 中で * と ? の特殊文字を使って 追加のワイルドカードオプションを指定しても構いません。また 後者は、 インストーラーリンカーのコマンドラインで指定された /AppPath の値に相対的な場所であるかもしれません。それは今度は、リンカーコマンドが実行された所から カレントディレクトリーが デフォルトになります。

    注:

    #CABPATH の代わりに どこででも #TEMPPATH を 使って構いません。#CABPATH はデフォルトで #TEMPPATH\#GUID です。もしセットアップの完了後に 一時ファイルを消したいならば、#TEMPPATH の代わりに #CABPATH を使い、cab_path_autodelete コンフィギュレーション オプションをセットして下さい。

    注:

    ログ記録を有効にしている時、ログファイルを #CABPATH 中に出力しない事を 確かにして下さい。 これは、インストーラーがまだログファイルに書こうとして #CABPATH ディレクトリーの消去を 妨げます。

  2. オプションで、 /EmbedFile/EmbedFolder でサブフォルダを含むフォルダ全体を持つ InstallLinker.exe コマンドライン経由で、個々のファイルを埋め込んでも構いません。 後者はまた、フラグも指定させます。例えば、全ての .msi ファイルを全てのサブフォルダ中に埋め込むには /EmbedFolder:Path\*.msi/EmbedFolder で ファイルは指定されたフォルダの下に 構造を反映して展開される事に 注意して下さい。例えば、/EmbedFolder:c:\filesc:\files\folder1\setup.msi を埋め込むならば、 展開された setup.msi は folder1\setup.msi の下に現れます。 違った展開構造を定義するには、ビルトイン EmbedFolder サブ コンポーネントを使って下さい。

  3. セットアップを InstallLinker.exe でリンクして、埋め込まれてしまったファイルを テストする。CAB の内容を表示するのに Setup.exe /DisplayCab を実行する。カレントフォルダの SupportFiles というディレクトリーの下に 全ての CAB の内容を出力するのに Setup.exe /ExtractCab を実行しても構いません。


(訳注: 埋め込みの targetfilepath は #CABPATH から相対的でファイル名を含むものに限定されるようですので、 msi コンポーネント ノードの package 属性を変更して下さい。そうしなければ Windows インストーラー サービスが ファイルが見つからないと言ってきます。targetfolderpath でも同様。)