WiX ファイルには必ず次の行が含まれているようです:
<Directory Id="TARGETDIR" Name="SourceDir">
「SourceDir」とは何ですか? 何に使用されますか? 実際のディレクトリ名ではありません。 何らかの魔法の値ですか?
ベストアンサー1
から:https://robmensching.com/blog/posts/2010/1/26/stackoverflow-what-does-namesourcedir-refer-to/
正直に言うと、これは開発者から隠すべきだったのですが、そうしませんでした。申し訳ありません。実際のところ、Windows インストーラーは、ディレクトリ ツリーが常に、プライマリ キー (Directory/@Id) が "TARGETDIR" で、DefaultDir 列 (Directory/@Name) が "SourceDir" であるディレクトリ行をルートとすることを想定しています。
インストール中、TARGETDIR はデフォルトでマシン上の最大のドライブに設定されます。ソースディレクトリMSI が実行されている場所に設定されます。最初のインストール後、SourceDir は ResolveSource アクションが呼び出されない限り設定されないため、扱いにくくなります。ただし、元のソース メディアを提供するように要求される可能性が高いため (つまり、CD を挿入してください)、ResolveSource アクションを明示的に呼び出すことは望ましくありません。
WiX ツールセットで実行すべきだったのは、TARGETDIR/SourceDir ペアを指定する必要性をなくし、「MSI SDK で指示されているように、親を持たない Directory 要素はすべて自動的に TARGETDIR に親付けされます」とすることです。代わりに、自分で実行する必要があります... 一部の開発者は、それが何を意味するのか疑問に思っています。