InstallShieldベースのインストーラを更新しています。 C#で書かれた、Wix DTFを使用してパッケージ化された新しい管理カスタムアクションを追加しました。 アクションが正しく呼び出され、必要な処理が実行されます。私が持っているMSI:インストールのUIフェーズでメッセージボックスを表示
問題は、ユーザーにエラーメッセージが表示されます。
方法1:MsiProcessMessage
私が読んだ記事から、私はMsiProcessMessage
はそれを行うための正しい方法であることを理解セットアップが実際にファイルをコピーし、起動する前に、しかし、この方法は、(UIシーケンスでは動作しません。修正システム)。インストールの順番でこの方法が有効です。私が使用するコードは以下の通りです:
Record record = new Record() { FormatString = "Password is not valid for this user." };
session.Message(
InstallMessage.Error | (InstallMessage)(MessageBoxIcon.Error) | (InstallMessage)MessageBoxButtons.OK,
record
);
はMsiProcessMessage
を使用してUIシーケンス(即時実行)にエラーメッセージを表示するために、実際には不可能ですか?
方法2:MessageBox.Show
メッセージボックスを示すWindows.Forms
作品を使用します。ただし、セットアップウィザードのバックグラウンドにメッセージが表示され、Windowsタスクバーに別のアイコンが表示されます。
インストールウィザードのウィンドウハンドルを取得する方法はありますし、その方法は、この問題を解決しますか?
あなたは全く正しい推測しました。私はすでに回避策として 'SpawnDialog'を選択しました。第二の問題を回避するには、私の心にずっと悪いです(私のインストーラがありますどのような名前を知る)ウィンドウ名、によってインストーラのウィンドウを見つけることでした。ご協力ありがとうございました! –
MSIでMESSAGECAPTIONとMESSAGETEXTプロパティを持つ汎用メッセージボックスダイアログを作成するのは簡単です。次に、あなたのControlEventでこれらのプロパティを割り当ててダイアログを起動するだけです。 –