2013-09-30 48 views
2

我想修改自定義對話框,所以我創建了一個。但我想在mondo UI中的歡迎對話框後顯示這個自定義對話框。在鏈中插入自定義對話框wix

如果我這樣做:

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg">1</Publish> 
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish> 
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish> 
<Publish Dialog="CustomCustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">1</Publish> 
<Publish Dialog="CustomCustomizeDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="4">1</Publish> 
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish> 

然後一切工作正常...但如果我做這樣的事情:不是說

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomCustomizeDlg">1</Publish> 
<Publish Dialog="CustomCustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish> 
<Publish Dialog="CustomCustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">1</Publish> 
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish> 

則表示沒有自定義對話框中,許可證對話框顯示後,歡迎...

我沒有得到它...這種行爲是奇怪的我...任何想法?

編輯:

我才發現,在MSI DB註冊控件事件上WelcomeDlg下一步CustomCustomizeDlg也爲LicenseDialog,而且既符合順序1 ...如果我刪除一行licenseDialog它工作確定,所以現在我的問題是如何刪除該行而不使用orca ...

回答

1

你不需要刪除它,只需添加你的控制事件的順序大於1(嘗試10左右確定)它會優先。

當多個NewDialog是要打開的候選對象時,將只選擇具有最大訂單號的對象。你可以找到類似的問題回答herehere

此外,您可以瞭解在MSDN ControlEvent table documentation訂購事件:

例外注意的是,每個控件可以發佈最多一個NewDialog或一個SpawnDialog事件。如果您需要在此表中創建多個NewDialog和SpawnDialog控件事件,還需要在條件字段中包含條件語句,以確保至多發佈一個事件。如果爲同一控件選擇了多個NewDialog和SpawnDialog控件事件,則只有在控件激活時纔會發佈Ordering列中具有最大值的事件。