MSI 内のファイルの相対パスを計算する必要があります。現在、Fileテーブルにクエリを実行して、FileName に対応するコンポーネントを取得しています。次に、このコンポーネントを使用してコンポーネント テーブルをクエリし、Directory_ を見つけます。次に、この Directory_ を使用して Directory テーブルにクエリを実行し、Directory_ の親ディレクトリを見つけます。
その後、$TARGETDIR に到達するまで、以前の親への Parent_Directory のディレクトリ テーブルをクエリし、ファイルのパスを作成し続けます。ここでは、$TARGETDIR のプロパティ値を置き換えて絶対パスを取得します。
私の質問は、これらすべてが MSI データベース内のテーブルに対して多数のクエリを必要とするため、かなりのパフォーマンス ヒットがあるということです。C++ または VC++ のライブラリに別の API がありますか、それとも Microsoft は同様の (しかし既製の) ソリューションを提供していますか? どんな種類の助けにも本当に感謝します!
ありがとう、シャンカ