我更新的基於InstallShield安裝的UI相顯示消息框。我已經添加了一個新的託管自定義操作,使用C#編寫,並使用Wix DTF打包。 正確調用操作,並執行必要的操作。MSI:在安裝
問題我是否顯示錯誤消息發送到用戶。
方法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中,您可以分配這些屬性並生成對話框。 –