質問

Windows7(つまりMSI 5.0)には、呼ばれるプロパティがあります msifastInstall インストーラーのパフォーマンスが向上します。または、Property DisableLollbackを設定することにより、ロールバックオプションをオフにすることができます。このプロパティは、MSI 5.0の以前のバージョンでも利用できます。

インストールエクスペリエンスを向上させるために、知識を共有してください。また、アンインストールのパフォーマンスを改善する正しい方法を見つけることができません。ファイル/フォルダーの膨大なセット(70,000を超える)と35000などのコンポーネントを使用します。ファイルコストプロセスに掛けられており、この遅延を回避する方法がわかりません。いつかXPまたはVistaマシンでアンインストールするために2時間または3時間以上ぶら下がっています

編集: 私は、巨大なファイルセットを備えたフォルダーをジップし、クリストファーが言ったようにコンポーネントサイズを縮小することにより、インストールでハックを行いました。パフォーマンスを大幅に改善しました。もちろん、この概念を実行することでMSIインストーラーパターンを失いましたが、それは推奨されるアプローチではありません。ただし、これを達成したい場合はトレードオフであり、ユーザーはパッチをアンインストール/アップグレードする際にファイルバージョンの詳細を実際に持ちたくありません。

役に立ちましたか?

解決

同様の状況がありましたが、ファイルの数は少し少なく、約25kでした。これらのファイルのほとんどはアイコンであり、あるリリースから別のリリースに変更されることはありませんでした。この領域にいくつかの変更をもたらす可能性がある大規模なリリース(2年あたり1回)のみが行われる可能性があります。 「Quick&Dirty」ソリューションは、これらのアイコンをZippedで、この単一のファイルをインストールに含めることでした(コンポーネントではなく、MSIと並んでファイルだけです)。インストール中、このzipはバックグラウンドスレッドで抽出され、removefileテーブルを使用してアンインストール時にアイコンを削除しました。多くのファイルを備えたコンポーネントとしてであっても、これらの20Kアイコンを個別のコンポーネントとしてインストールするよりも高速でした。優れた正しい解決策は、メインアプリケーション開発者にこれらすべての20kアイコンを20のZIPアーカイブに入れるよう説得することでした。これで、これらの20個のZIPファイルが通常のMSIコンポーネントとしてインストールされており、アプリケーションはオンデマンドでアイコンを抽出してキャッシュする方法を知っています。

ロールバックを無効にすることはお勧めしません。かなりのインストール時間を節約しますが、標準の保証付きロールバックオプションが失われます。

アンインストールは、ロールバック機能のためにインストールよりも時間がかかります。私が理解する方法は、アンインストールするときに、MSIが最初にすべてのファイルのコピーを作成し、次にすべてのファイルをアンインストールし、成功の場合はすべてのバックアップファイルをドロップします。したがって、アンインストール時間は、インストール時間の約3倍です。コンポーネントごとに1つのファイルを持つためにデフォルトのオプションを取得したときに同じ問題が発生しました。お勧めしますが、優れたケースに対処する場合は、トレードオフを行う必要があります。

これがあなたのために物事を少しクリアすることを願っています。

他のヒント

アプリのパフォーマンスを改善するための最良のオプションは、ファイルとコンポーネントの数を減らすことです。パフォーマンスを改善するためにMSIにできるいくつかの調整があるかもしれませんが、ファイル/コンポーネントの過剰数がコアの問題であり、パフォーマンスの改善のゲーティング要因になります。なぜ70Kファイルをインストールする必要があるのですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top