私は、wixセットアップを作成したい大きな.NETソースツリー(185のC#およびVBプロジェクト、そのうち60はアプリまたはWebサイト)を持っています。一般的な考え方は、1つのセットアップmsiを用意し、各実行可能ファイルを機能にし、各アプリを別々のディレクトリにインストールすることです。お気に入り
%progfiles%/company/app1
/app2
/app3
これまでのところ、機能ツリーを使用してwix製品ファイルを作成し、ヒートツールで各.NETプロジェクトのフラグメントファイルを生成することができました。彼らはこのように見えます:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="Client.Binaries">
...component definitions...
</DirectoryRef>
<DirectoryRef Id="Client.Content">
...etc...
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Client.Binaries">
...ComponentRefs referencing components defined under
the DirectoryRef with the same id...
</ComponentGroup>
...etc...
ただし、この2つをリンクすると問題が発生します。機能はコンポーネントグループを参照でき、コンポーネントグループはコンポーネントを参照できます。コンポーネントはDirectoryRefに含まれています。
DirectoryRef要素によって参照されるDirectory要素を定義すると、問題が発生します。
一部のライブラリは複数のアプリで使用されるため、DirectoryRefは複数のディレクトリを指している必要があり、複数のDirectoryRef(異なるIDを持つ)は同じディレクトリを指している必要があります(ディレクトリエイリアストリックが見つかりました)。どちらも不可能と思われます。
間違った方向に進んでいる、またはより深い洞察が欠けているという明確な印象を受けます。(私のwix-fuは完全に3日経過しているので驚きはありません)
誰かがこの暗くて邪悪な問題にろうそくを灯す方法を教えてもらえますか(しゃれは意図されていません...)