今日、wixstdba はアクション データの進行状況メッセージを表示しません。wix-devs メーリング リストでこの機能を追加することについて話している人がいましたが、まだ実現していません。管理された場合のようなコードをwixstdbaに追加するだけです(まだありません)。
インストールされているパッケージの名前を wixstdba と同じ方法で表示したいだけの場合は、Engine.OnCachePackageBegin()
およびEngine.ExecutePackageBegin()
コールバックを処理する必要があります。これらのコールバックは、パッケージのダウンロードとインストールがいつ開始されるかをそれぞれ通知します。これらのコールバックへの引数の一部として、パッケージ ID が提供されます。
わかりやすい表示名を取得するにはBootstrapperApplicationData.xml
、Bootstrapper Application .dll の横に自動的に含まれる を読み取ります。にはWixPackageProperties
、バンドル内のパッケージに関する多くの情報を提供する要素があり、DisplayName
.
--- 申し訳ありませんが、以下は質問されていない質問への回答です。---
Engine.ExecuteMsiMessage()
コールバックは、Windows インストーラーがメッセージ (アクション データやユーザーに入力を促す要求など) を表示するときに呼び出されます。進行状況は、3 つの異なるコールバックを介して提供されます。
コールバックを介して全体的な進行状況を取得できEngine.Progress
ます。これは非常に大まかな進行状況であり、基本的に各パッケージがキャッシュされて実行されると移動します。
を介して、全体および個々のパッケージの進行状況を取得できますEngine.CacheAcquireProgress
。この進行状況は、各パッケージがダウンロード/コピーされ、パッケージ キャッシュに配置されることが検証されるにつれて移動します。
コールバックを介して、全体的および個々のパッケージの進行状況を取得できEngine.ExecuteProgress
ます。この進行状況は、各パッケージがインストール/修復/アンインストールされると移動します。
そのためEngine.Progress
、全体的な進行状況が表示され、単一の進行状況バーには非常に使いやすいですが、進行状況バーは非常にスムーズに移動しません。に を追加するEngine.CacheAcquireProgress
と、全体的な進行がよりスムーズになりEngine.ExecuteProgress
ます。注: これにより、200 になるプログレス バーが表示されます。
ファイルで、WixBA がこれらすべてをどのように処理するかを確認できsrc\Setup\WixBA\ProgressViewModel.cs
ます。