0

バックグラウンド:

3 つの構成/SKU (Basic、Standard、Enterprise など) と 2 つのプラットフォーム (x86、x64) を持つアプリケーションのセットアップを作成しています。構成が異なれば、異なるアップグレード コードが使用されます。

これにより、6 つの異なる構成のマトリックスが得られます。現在、構成ごとに個別の wxs スクリプトがありますが、セットアップに手動でファイルを追加する場合、それらすべてで正しく実行することを覚えておくことはほとんど不可能です。ほとんどのファイルは (コンテンツではなく名前で) 共有されているため、はSomeNamespace.SomeLibrary.dll6 つのセットアップ パッケージすべてのファイルですが、6 つすべてが異なる可能性があります (プラットフォームによって、場合によっては構成によっても異なります)。

私の最初の質問は次のとおりです。サイズは大きくてもほとんど同じセットアップ スクリプトを複数保持する必要がないようにするにはどうすればよいでしょうか。

2 番目の問題: コンポーネント ID:

カスタム ハーベスターまたはテンプレートによって作成されたフラグメントを介して大量の wxs スクリプトを再利用できた場合、コンポーネント ID はどうすればよいですか? コンポーネントが製品間で共有されておらず、MajorUpgrade のみを使用している場合、生成された (*) GUID をコンポーネントに使用できますか? コンポーネント ID 生成のもう 1 つのオプションは、heat を使用するか、SHA1(相対インストール パス + 構成 + プラットフォーム) などの決定論的ハッシュを手動で作成することです。

大規模なマルチ構成のマルチプラットフォーム WiX プロジェクトの良い例はありますか?

4

1 に答える 1

0

さて、セットアップの各ファイルに別々のコンポーネント ID を用意することがなぜ良い考えなのかを学びましたか?

何が起こっているのかを理解するためのリンクは次のとおりです。

wix 'KeyPath' 属性とは何ですか?

Wix: コンポーネントごとに 1 つのファイルまたはコンポーネントごとに複数のファイル?

Wix: コンポーネント、ディレクトリ、ファイル、レジストリなどで KeyPath を使用する

あなたの質問に関しては、各ファイルに独自のコンポーネント識別子を持たせることは理にかなっていると思います(そして、それらを別の製品に入れてもそれは変わりません)。

ComponentSearch は、特定のコンポーネントを検索するために ProductCode を必要としません。2 つの製品がインストールされていて、それらの両方が同じコンポーネントに対して同じ GUID を持っている場合にどうなるかを考えてみてください。爆発するでしょう。

于 2013-11-08T12:15:47.770 に答える