0

Wix Toolset v3.7 を使用してアプリケーションの MSI パッケージを作成しています。問題は、パッケージ化するファイルの 1 つのサイズが 4 GB を超えていることです。その結果、MSI の生成は次のエラーで失敗します。

some_file.dat" が大きすぎます。ファイル サイズは 2147483648 未満にする必要があります。

この問題の解決策を探しましたが、具体的な指針はまだありません。Wix を使用してこれにアプローチする方法を知っている人はいますか? ファイルをキャブに分割し、解凍時に再マージするように指定する方法はありますか?

4

2 に答える 2

1

ファイル テーブルごと(Windows)

FileSize 列は、–2,147,483,647 ~ +2,147,483,647 バイトのみを表すことができる DoubleInteger ですCAB のサイズと MSI のサイズには、他にも制限があります。これらは厄介な制限ですが、インストーラーが 2GB を超えるファイルを出荷する必要があることはほとんどありません。

WiX は Windows インストーラー上に構築されているため、ちょっと行き詰っています。インストーラーはメディアで配布されていますか? カスタム アクションを使用してファイルを手動でコピーすることもできます。もう 1 つの考えは、ファイルを断片に分割し、カスタム アクションを使用してそれらを結合することです。難しい選択。

于 2013-08-09T15:52:07.687 に答える
0

1) msi ビルドの前に共通の zip/パッケージ ツールを使用してファイルを分割し、そのツールをカスタム アクションとして使用してそれらをまとめることができます。もちろん、そのようなツールを独自に作成することもできます。次に、そのファイルの一部が MSI によって標準的な方法で処理されます (最終的なマージ アクションが行われる前に)。

2)そのファイルにすべての msi が必要ない場合は、大きなファイルを msi に入れることを避け、ツールを使用して自己解凍型の .exe を作成することができます。これにより、msi が開始され、スクリプトによってファイル自体がコピーされる可能性があります。おそらく最も簡単な方法です。

3) MSI のDuplicateFilesテーブルを使用すると、MSI 自体のカスタム アクションとしてファイルのコピーを試みることができます。自己解凍型 .exe のアイデアの有無にかかわらず。なしは、.msi 以外の大きなファイルが圧縮されていないことを意味します。With は、その .exe ですべて圧縮したことを意味します。

于 2013-08-09T16:44:54.930 に答える