あなたは、一般的にTARGETDIRディレクトリに名前が必要なのはなぜですか? WiXのプロジェクトで
<Directory Id="TARGETDIR" name="SourceDir">
のような行が表示されます。しかし、なぜname
はここで設定する必要があるのでしょうか?私が理解していることから、name
プロパティは、インストールを行っているマシン上で生成されたフォルダの名前を指定します。しかし、SourceDirフォルダは作成されないので、なぜそれが必要ですか?
あなたは、一般的にTARGETDIRディレクトリに名前が必要なのはなぜですか? WiXのプロジェクトで
<Directory Id="TARGETDIR" name="SourceDir">
のような行が表示されます。しかし、なぜname
はここで設定する必要があるのでしょうか?私が理解していることから、name
プロパティは、インストールを行っているマシン上で生成されたフォルダの名前を指定します。しかし、SourceDirフォルダは作成されないので、なぜそれが必要ですか?
TARGETDIRは、MSIファイルのディレクトリテーブルの解決に特別な役割を果たします。具体的には、ソースとターゲットのディレクトリツリーのルートを形成します。これはDirectory_Parent列のNULL値によってMSIファイルに示されている:ディレクトリ解像度SOURCEDIR後
がMSIから実行されているパスを指します。さらに、TARGETDIRは、上記の図に示すように、ProgramFilesFolderやProgramMenuFolderなどのビルトインWindowsディレクトリの親フォルダになります。
SourceDirは実行中のMSIファイルの場所を保持するように定義されています。この場所は、インストールする各ファイルの配布メディア上のソースの場所を解決するために必要です。
対象の場所は、ファイルの完全なインストールパスです。C:¥Program Files¥My App(ファイルの格納場所)です。ソースの場所は、ファイルの完全なソースパスです。[SourceDir] Program Files \ My App(ファイルの送信元)。
これが遅いですが、これが明確でない場合は教えてください。
更新: これは以前に尋ねられました。この投稿をチェックして、Wixの作成者Rob Menschingの説明を参照してください:In WiX files, what does Name="SourceDir" refer to?